删除sql中字符串的最后一个字符的最佳方法是什么?

时间:2015-01-23 13:41:21

标签: sql-server

我使用以下内容,但有没有简单的方法呢?

DECLARE @x VARCHAR(32) = 'uk,usa,germany,poland,';
SELECT SUBSTRING(@x,0, LEN(@x) - CHARINDEX(',', REVERSE(@x)) + 1);

输出是:

uk,usa,germany,poland

非常感谢。

3 个答案:

答案 0 :(得分:2)

select left(@x, len(@x) - 1)

请注意,LEN不包括尾随空格。

答案 1 :(得分:0)

使用STUFF尝试:

DECLARE @x VARCHAR(32) = 'uk,usa,germany,poland,';
select STUFF(@x,LEN(@x),1,' ')

答案 2 :(得分:0)

为了避免空字符串出错,我建议使用SUBSTRING从字符位置0开始而不是LEFT。使用left和我的测试数据会失败。

DECLARE @t table(col1 varchar(20))
INSERT @t values('abc,'),(''), ('Denmark,')

SELECT 
  SUBSTRING(col1, 0, len(col1)) 
FROM @t

结果:

abc
<empty row>
Denmark