san*_*son 1 regex sql t-sql sql-server string
如何在MS SQL中使用单个逗号替换列中的连续逗号?
例如,我有像这样的数据
a,,,,b,,,c,,,,,,
d,e,,,f,,,,,,g,,
Run Code Online (Sandbox Code Playgroud)
我希望将其处理为以下格式:
a,b,c,
d,e,f,g,
Run Code Online (Sandbox Code Playgroud)
建议的副本,使用SQL来替换具有单个逗号的字符串中的多个逗号,适用于Oracle.这是一个关于SQL Server的问题.
你可以使用简单的REPLACE:
SELECT c, REPLACE(REPLACE(REPLACE(c, ',', '~,'), ',~', ''), '~,', ',')
FROM tab;
Run Code Online (Sandbox Code Playgroud)
输出:
???????????????????????????????
? c ? result ?
???????????????????????????????
? a,,,,b,,,c,,,,,, ? a,b,c, ?
? d,e,,,f,,,,,,g,, ? d,e,f,g, ?
???????????????????????????????
Run Code Online (Sandbox Code Playgroud)
请注意,这种方法不依赖于SQL方言,应该与MySQL/Oracle/PostgreSQL/...一起使用