一尘不染

SQL:删除字符串中的最后一个逗号

sql

我在SQL表中有一个文本备注字段,如果它是逗号,则需要删除该字段中的最后一个字符。

因此,例如,如果我有这些行,则需要从第2行和第4行中删除逗号。

  INETSHORTD
1  94
2  85,
3  94, 92
4  89, 99, 32,

输出为:

  INETSHORTD
  94
  85
  94, 92
  89, 99, 32

有任何想法吗?


阅读 917

收藏
2021-03-10

共1个答案

一尘不染

使用REVERSESTUFF

SELECT
    REVERSE(
        STUFF(
            REVERSE(LTRIM(RTRIM(INETSHORTD))), 
            1, 
            CASE WHEN SUBSTRING((REVERSE(LTRIM(RTRIM(INETSHORTD)))), 1, 1) = ',' THEN 1 ELSE 0 END, 
            ''
        )
    )
FROM tbl

首先,您希望TRIM您的数据摆脱前导和尾随空格。然后REVERSE检查第一个字符是否为,。如果是的话,将其删除,否则什么也不做。然后REVERSE又回来了。您可以使用删除第一个字符STUFF(string, 1, 1, '')

SQL小提琴

2021-03-10