簡體   English   中英

SQL Server 2014:逗號后加空格

[英]SQL Server 2014: Add space after comma

我只想更新Column1中具有字符串字符的值,然后是逗號,然后(沒有空格)更多字符,例如: abc,defabc,123,def 我想在逗號和下一個字符之間添加一個空格,如下所示: abc, defabc, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM