sql中大写字母的拆分词

2024-04-18

有谁知道如何从字符串中拆分以大写字母开头的单词?

Example:

    DECLARE @var1 varchar(100) = 'OneTwoThreeFour'
    DECLARE @var2 varchar(100) = 'OneTwoThreeFourFive'
    DECLARE @var3 varchar(100) = 'One'

    SELECT @var1 as Col1, <?> as Col2
    SELECT @var2 as Col1, <?> as Col2
    SELECT @var3 as Col1, <?> as Col2

预期结果:

    Col1                Col2
    OneTwoThreeFour     One Two three Four
    OneTwoThreeFourFive One Two Three Four Five
    One                 One

如果这是不可能的(或者太长),标量函数也可以。


这是我创建的一个类似于“删除非字母字符”的函数。如何从 SQL Server 中的字符串中删除所有非字母字符? https://stackoverflow.com/questions/1007697/how-to-strip-all-non-alphabetic-characters-from-string-in-sql-server/1008566#1008566

该排序规则使用区分大小写的排序规则,主动查找非空格/大写字母组合,然后使用 STUFF 函数插入空格。这是一个标量 UDF,因此有些人会立即说它会比其他解决方案慢。对于这个想法,我说,请测试一下。该函数不使用任何表数据,并且仅根据需要循环多次,因此它可能会给您带来非常好的性能。

Create Function dbo.Split_On_Upper_Case(@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^ ][A-Z]%'
    While PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) + 1, 0, ' ')

    Return @Temp
End

像这样称呼它:

Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('One')
Select dbo.Split_On_Upper_Case('OneTwoThree')
Select dbo.Split_On_Upper_Case('stackOverFlow')
Select dbo.Split_On_Upper_Case('StackOverFlow')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql中大写字母的拆分词 的相关文章

  • 如何使用 pyodbc 和 MS-Access 在 Python Cursor.execute 中查看真实的 SQL 查询

    我在 Python 中使用以下代码 使用 pyodbc 作为 MS Access 基础 cursor execute select a from tbl where b and c x y 没关系 但是出于维护目的 我需要知道发送到数据库的
  • 在 SQL 存储过程中选择并合并表中的行

    有一个具有架构的临时表 ID 序列号 姓名 ID 不唯一SeqNo 整数 可以是 1 2 或 3 以ID SeqNo作为主键排序名称 任何文本 表中的示例数据如下 1 1 RecordA 2 1 RecordB 3 1 RecordC 1
  • 如何列出引用 SQL Server 中给定表的所有外键?

    我需要删除 SQL Server 数据库中高度引用的表 如何获取删除表时需要删除的所有外键约束的列表 SQL 答案比在 Management Studio 的 GUI 中单击有关更好 不知道为什么没有人建议但我使用sp fkeys查询给定表
  • 有谁知道这是怎么做到的? SQL注入

    由于许多其他网站已被攻击 我不得不假设它是一个机器人 它注入了一个脚本 昨天 http google stats50 info ur php Today http google stats49 info ur php 它将它注入到多个表中
  • 如何使用 JDBC 执行过程

    这是我的功能 public static void execute delete on db String pass String login String port String host String table name String
  • 检测递归查询中的循环

    我的 PostgreSQL 数据库中有一个有向图 节点和循环之间可以有多个路径 create table edges from int to int insert into edges values 0 1 1 2 2 3 3 4 1 3
  • 自动递增 SQL 值

    在我现在工作的一家公司的全球 DBA 的无限智慧中 他创建了一个表 该表采用 int 作为 ID 字段 但不会自动递增数字 我正在传递来自 Net 的表值参数 因为它在任何时间都会传递大约 100 行或更多行数据 并且我不想终止应用程序 破
  • SqlBulkCopy 在单个事务下插入多个表或在实体框架和经典 Ado.net 之间进行批量插入操作

    我的应用程序运行时需要插入两个表 假设我有如下表格 tbl FirstTable 和 tbl SecondTable 我的问题是数据量 我需要向 tbl FirstTable 插入超过 10 000 行 向 tbl SecondTable
  • Sql Server 2005 将列名放在方括号中

    我最近将数据库从 Sql Server 2000 迁移到 Sql Server 2005 在表设计器中 它坚持将方括号放在名为 Content 的列周围 我在 Sql Server 的保留字列表中没有看到 Content 所以我不明白它为什
  • SQL SERVER 和 SET ANSI_NULLS ON、SET QUOTED_IDENTIFIER ON

    所以我在创建脚本时一直盲目地使用ansi nulls on quoted identifier on 因为sqlserver在编写对象脚本时会自动生成它们 我真的没有时间关心这些琐碎的废话 但我想必须提出这些问题 鉴于这些是推荐的设置 是否
  • 将自连接重写为 JPQL

    我需要将此自连接转换为 JPQL SELECT s1 FROM site AS s1 JOIN SELECT site type MAX last update date AS LastUpdate FROM site WHERE site
  • Oracle 10 中的本地临时表(适用于存储过程的范围)

    我是甲骨文新手 我需要在存储过程中处理大量数据 我正在考虑使用临时表 我正在使用连接池 并且该应用程序是多线程的 有没有一种方法可以为每次调用存储过程创建不同的表实例来创建临时表 以便来自多个存储过程调用的数据不会混淆 你说你是 Oracl
  • 在 OLAP 多维数据集中,过滤属性时总计错误

    用户尝试检查每个销售人员的销售额 样本数据 Salesperson Sales Amount 001 1000 002 500 003 750 Grand Total 2250 看起来不错 但我们有以下层次结构Company gt Clas
  • 如何在 postgresql 的“tablefunc”查询中包含空值?

    我正在尝试使用crosstab http www postgresql org docs 9 1 static tablefunc html函数于postgresql创建一个pivot table 但是 我很难理解如何在查询中构建 SQL
  • 如何从 SQL Server 2005 数据库中删除脱机文件

    我有一个数据库 前段时间从 SQL 2000 实例恢复到 SQL 2005 实例 SQL 2000 实例定义了旧的 未使用的全文搜索 看来 当文件恢复时 全文搜索并没有恢复 只是被删除了 这使数据库处于一种有趣的状态 FTS 文件仍然与数据
  • 将一个巨大的字符串参数传递给存储过程

    我有一个存储过程 它有两个参数 ID 和日期 当我将大文本传递给 ID 参数时 仅考虑部分文本 就好像文本在某个地方被剪切一样 我想这是因为当我执行存储过程时如下 exec proc 1 2 3 4 20100101 一切正常 但是当我使用
  • 无法在 Sql Server 中运行分析功能

    在 Oracle 中它运行良好 oracle的查询如下 SELECT TEAM ID LEVEL ID FF ID MODULE ID TERR ID MERGE KEY count distinct TERR ID over partit
  • 如何选择非“唯一”行

    我有下表 我必须从中获取非唯一行 id idA infos 0 201 1899 1 205 1955 2 207 1955 3 201 1959 我想获取该列的所有行infos 具有相同的idA至少有两行的值 上表的查询输出必须是 inf
  • 何时在 SQL 语句中使用单引号?

    我知道当我处理 TEXT 类型的数据时应该使用它 我猜是那些回退到 TEXT 的数据 但这是唯一的情况吗 Example UPDATE names SET name Mike WHERE id 3 我正在用 C 编写 SQL 查询自动生成
  • 为什么表上主键的存在可以显着提高列存储索引的性能?

    我试图了解列存储索引可以在表上提供什么样的性能提升 该表大约有 370 万行 11 列 并存储为堆 即没有主键 我在表上创建列存储索引并运行以下查询 SELECT Area Family AVG Global Sales Value AS

随机推荐