我需要从左侧和右侧条纹重复字符。MS SQL 2012从右侧和左侧删除重复字符
来源:
,,,,2000001,2000002,2000003,2000004,2000005,2000006,,,,,
要:
2000001,2000002,2000003,2000004,2000005,2000006
我需要从左侧和右侧条纹重复字符。MS SQL 2012从右侧和左侧删除重复字符
来源:
,,,,2000001,2000002,2000003,2000004,2000005,2000006,,,,,
要:
2000001,2000002,2000003,2000004,2000005,2000006
使用LEFT
,SUBSTRING
和CHARINDEX
字符串函数
试试这个
DECLARE @str VARCHAR(500) = ',,,,2000001,2000002,2000003,2000004,2000005,2000006,,,,,'
SELECT LEFT(intr, Charindex(',,', intr) - 1) as Result
FROM (SELECT Substring(@str, Patindex('%[0-9]%', @str), Len(@str)) AS intr) a
它的工作原理。谢谢 。 –
作弊与装饰:
REPLACE(RTRIM(LTRIM(REPLACE(fld, ',', ' '))), ' ', ',')
让我看起来很蠢; p –
我现在看到了,也有效。谢谢。 –
这里只使用REPLACE
:)另一种解决方案 - 太有趣了:
select replace(replace(replace(',,' + YourField + ',,', ',,', '.'), '.,', ''), '.', '')
字符.
不应该出现在你的字段的值,所以你可以选择任何符合该要求的其他角色。
当您的字段包含空格时,此方法甚至可用(然后您无法使用RTRIM
和LTRIM
来玩这个窍门)。
您正在使用哪个'DBMS' –
I'am使用MS Sql 2012 –