[英]SQL Server 2014: Add space after comma
我只想更新Column1
中具有字符串字符的值,然后是逗號,然后(沒有空格)更多字符,例如: abc,def
或abc,123,def
。 我想在逗號和下一個字符之間添加一個空格,如下所示: abc, def
或abc, 123, def
。 如果已經有一個,它不應該添加一個額外的空間。
抱歉,我沒有任何現有的 SQL 可以顯示——我什至不確定從哪里開始。
我首先將,
(逗號+空格)的所有實例替換為,
(逗號,無空格)。 這樣,一切都是統一的。 然后走另一條路; 用逗號+空格替換逗號
也許有點矯kill過正,但這將支持逗號前后的任意空格組合
例
Declare @S varchar(max) = 'abc , 123 , def, ddd'
Select replace(replace(replace(replace(@S,',','<>'),' ','<>'),'><',''),'<>',', ')
退貨
abc, 123, def, ddd
我應該補充一點,這是幾個月前戈登的一個小把戲。 我沒有原始鏈接
我認為您需要先刪除空間,然后向附近的column1添加空間
UPDATE yt set yt.Column1 =replace(replace(yt.Column1 ,' ',''),',',', ')
from yourtable yt
where yt.Column1 like '%,%'
這會做你想要的
UPDATE TABLE
SET Col1 = REPLACE(REPLACE(Col1,', ',','),',',', ')
WHERE Col1 LIKE '%,%'
如果逗號后只需要一個空格並且數據不一致,則還可以選擇 string_split,然后是 string_agg:
DECLARE @test varchar(max) = 'Test, Test 12,Test34,Test56 , Test78'
select STRING_AGG(Trim(value),', ') as Test from string_split(@test,',')
結果:
Test, Test 12, Test34, Test56, Test78
如果可能的話,你應該使用 string_split 的新“enable_ordinal”選項,但實際上我從來沒有遇到過順序問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.