2015-10-20 48 views
1

我有一个字符串,我需要进入函数/它全部是关于aka alphabethizing格式的名称Dow, John W与确切的外壳。在我的情况下,我需要在我的函数逗号后留出空格,并且有些字符串没有它们,如何以最有效的方式执行它?我尝试使用range []来执行下面的操作,但它不起作用。 基本上我想要逻辑:如果逗号后没有空格,那么插入空格,我不想触摸函数本身,因为它是遗留的东西。TSQL,检查comman是否在字符串后有空格

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

的Tx 中号

+0

你永远只希望看到一个逗号?或者,这个关于空间的规则是否仅适用于第一个逗号? –

回答

1

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

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

相关问题