SQL,删除行尾逗号的出现

标签 sql sql-server replace

我的数据如下

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/

相关文章:

string - 当存在多个匹配项时,PowerShell 替换文件中的特定字符串

mysql - 有什么办法可以更好地优化这个全文MySQL搜索吗? CPU负载过高

SQL 查询显示表中包含数据的最新行,或为 null

mysql - 从借方和贷方表计算帐户余额

sql - sys.sql_dependency 目录 View 未更新会产生什么后果

javascript - 如何替换 HTML 正文中与单词匹配的所有内容?

javascript - 如何处理参数化查询中的空用户输入?

sql - 如何在没有字符串最后一部分的情况下更新

python - 如何在Python中使用sqlalchemy在查询中创建sql server表变量

正则表达式匹配关键字之前第一次出现的情况