【发布时间】:2018-12-18 14:56:47
【问题描述】:
有人知道如何从字符串中拆分以大写字母开头的单词吗?
例子:
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
如果这不可能(或者如果太长),标量函数也可以。
【问题讨论】:
-
我想可以通过使用正则表达式查找 (A-Z) 并替换为“空格”+ (A-Z) 来完成。注意标量函数可能会消耗性能。
-
@jean SQL Server 中没有正则表达式。
-
This article 概述了一种向 t-sql 添加简单正则表达式支持的方法。性能警告适用。请注意,您可以在
like运算符的参数中使用简单模式,即。%[a-z][A-Z]%,用于识别包含驼峰式数据列的记录。 -
通过正则表达式,我的意思是做任何事情,例如 SELECT patindex('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%','gaurang Ahmedabad' COLLATE SQL_Latin1_General_CP1_CS_AS)
标签: sql sql-server tsql