Sql server TSQL,检查comman后面是否有用于字符串的空格
我有一个字符串需要输入到函数中/这都是关于aka字母化名称的,格式为Sql server TSQL,检查comman后面是否有用于字符串的空格,sql-server,tsql,Sql Server,Tsql,我有一个字符串需要输入到函数中/这都是关于aka字母化名称的,格式为Dow,John W,大小写精确。在我的例子中,我需要为我的函数在逗号后加空格,而有些字符串没有空格,如何以最有效的方式来做呢?我尝试使用range[]执行以下操作,但不起作用。 基本上我需要逻辑:如果逗号后没有空格,那么插入空格,我不想触及函数本身,因为它是遗留的东西 DECLARE @inpstring VARCHAR(100) = 'DOW,JohN W' SELECT Replace(@inpstring,'[A-
Dow,John W
,大小写精确。在我的例子中,我需要为我的函数在逗号后加空格,而有些字符串没有空格,如何以最有效的方式来做呢?我尝试使用range[]执行以下操作,但不起作用。
基本上我需要逻辑:如果逗号后没有空格,那么插入空格,我不想触及函数本身,因为它是遗留的东西
DECLARE @inpstring VARCHAR(100) = 'DOW,JohN W'
SELECT Replace(@inpstring,'[A-Z],[A-Z]','[A-Z], [A-Z]')
-- s'be 'Dow, John W'
德克萨斯州
M假设字符串中只有一个
,
,您可以使用:
DECLARE @inpstring VARCHAR(100) = 'DOW,JohN W'
SELECT CASE
WHEN PATINDEX('%,[A-Z]%', @inpstring) > 0 THEN Replace(@inpstring,',',', ')
ELSE @inpstring
END
对于多个逗号:
DECLARE @inpstring VARCHAR(100) = 'A,B,C, D'
SELECT @inpstring =
CASE
WHEN PATINDEX('%,[A-Z]%', @inpstring) > 0
THEN REPLACE(Replace(@inpstring,',',', '), ', ', ', ')
ELSE @inpstring
END
PRINT(@inpstring);
您是否只希望看到一个逗号?或者,关于空格的规则应该只适用于第一个逗号吗?