我的数据如下
MyText
-------
some text, some more text, even more text,,
some text,,,,
some text, some text,,,
some text, some more text, even more, yet more, and again
我想实现:
MyText
-------
some text, some more text, even more text
some text
some text, some text
some text, some more text, even more, yet more, and again
如何删除行尾的逗号?我必须保留项目之间的逗号,但我需要从末尾删除任何逗号
我需要在 select 语句中执行此操作,并且我无法找到在不编写函数的情况下应用 RegEx 的解决方案(我宁愿避免这种情况)
我有一个解决方案,但它特别脏,我想改进它。我正在使用一组嵌套的 REPLACE 将 4 个逗号替换为 3,将 3 替换为 2,将 2 替换为一个,然后删除末尾的
有任何想法吗?
编辑:数据来自外部系统,所以我无法控制它,否则我会在第一个实例中正确连接逗号。我使用的这个语句将在 SQL Server 2005 上运行
最佳答案
尝试这样的事情
DECLARE @Table TABLE(
Val VARCHAR(MAX)
)
INSERT INTO @Table (Val) SELECT 'some text, some more text, even more text,,'
INSERT INTO @Table (Val) SELECT 'some text,,,,'
INSERT INTO @Table (Val) SELECT 'some text, some text,,,'
INSERT INTO @Table (Val) SELECT 'some text, some more text, even more, yet more, and again'
SELECT Val,
REVERSE(SUBSTRING( REVERSE(Val), PATINDEX('%[A-Za-z0-9]%',REVERSE(Val)), LEN(VAL) - (PATINDEX('%[A-Za-z0-9]%',REVERSE(Val)) - 1) ) ),
*
FROM @Table
关于SQL,删除行尾逗号的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687025/