我在SQL表中有一个文本备注字段,如果它是逗号,则需要删除该字段中的最后一个字符。
因此,例如,如果我有这些行,则需要从第2行和第4行中删除逗号。
INETSHORTD 1 94 2 85, 3 94, 92 4 89, 99, 32,
输出为:
INETSHORTD 94 85 94, 92 89, 99, 32
有任何想法吗?
使用REVERSE和STUFF:
REVERSE
STUFF
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, '')。
TRIM
,
STUFF(string, 1, 1, '')
SQL小提琴