2015-10-20 47 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

相關問題