繁体   English   中英

TSQL,检查comman是否在其字符串后有空格

[英]TSQL, check if comman has space after it for string

我有一个字符串,我需要输入到函数中/这全是关于以Dow, John W格式使用精确大小写的aka字母名称。 就我而言,我需要为函数使用逗号后的空格,而有些字符串没有它们,如何以最有效的方式做到这一点? 我试图用范围[]进行以下操作,但是它不起作用。 基本上,我想要逻辑:如果在逗号后没有空格,则插入空格,我不想触及函数本身,因为它是传统的东西。

DECLARE @inpstring VARCHAR(100) = 'DOW,JohN   W'
SELECT  Replace(@inpstring,'[A-Z],[A-Z]','[A-Z], [A-Z]')
-- s'be 'Dow, John   W'

Tx M

假设只有一个,可以使用字符串:

DECLARE @inpstring VARCHAR(100) = 'DOW,JohN   W'
SELECT CASE 
        WHEN PATINDEX('%,[A-Z]%', @inpstring) > 0 THEN Replace(@inpstring,',',', ')
        ELSE @inpstring
       END

LiveDemo

对于多个逗号:

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);

LiveDemo2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM