gpt4 book ai didi

SQL Server 查询替换额外的 ";;;"个字符

转载 作者:行者123 更新时间:2023-12-04 14:44:10 25 4
gpt4 key购买 nike

我的表中有以下行,我想删除重复的分号(;)。

ColumnName
Test;Test2;;;Test3;;;;Test4;
Test;;;Test2;Test3;;Test4;
Test;;;;;;;;;;;;;;;;;Test2;;;;Test3;;;;;Test4;

从上面的行中,我想删除重复的分号 (;) 并只保留一个分号 (;)

像下面
ColumnName
Test;Test2;Test3;Test4
Test;Test2;Test3;Test4
Test;Test2;Test3;Test4

谢谢
拉杰什

最佳答案

我喜欢使用这种模式。 AFAIK,最初由 Jeff Moden 在 SQLServerCentral ( link ) 上发布。
我在所有行中都留下了终端分号,因为它们是单次出现的项目。 SUBSTRING()LEFT()去除。

CREATE TABLE #MyTable (MyColumn VARCHAR(500))
INSERT INTO #MyTable
SELECT 'Test;Test2;;;Test3;;;;Test4;' UNION ALL
SELECT 'Test;;;Test2;Test3;;Test4;' UNION ALL
SELECT 'Test;;;;;;;;;;;;;;;;;Test2;;;;Test3;;;;;Test4;'

-- Where '^|' nor its revers '|^' is a sequence of characters that does not occur in the table\field
SELECT REPLACE(REPLACE(REPLACE(MyColumn, ';', '^|'), '|^', ''), '^|', ';')
FROM #MyTable

-- If you MUST remove terminal semi-colon
SELECT CleanText2 = LEFT(CleanText1, LEN(CleanText1)-1)
FROM
(
SELECT CleanText1 = REPLACE(REPLACE(REPLACE(MyColumn, ';', '^|'), '|^', ''), '^|', ';')
FROM #MyTable
)DT

关于SQL Server 查询替换额外的 ";;;"个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com