如何从SQL查询中的逗号分隔列表中删除最后一个逗号?
我做了一个示例,其中我得到一个逗号分隔的字符串作为输出。但我发现字符串结束后会出现一个逗号。我试图修剪它但却无法做到。任何人都可以帮我把它弄掉?
我的结果字符串看起来像这样
例如: - 一些文字,一些文字,甚至更多,更多,
答案 0 :(得分:2)
DECLARE @my_string nvarchar(128)
SET @my_string = N'Some Text, Some More Text, Even More, Yet More,'
select SUBSTRING(@my_string, 1, LEN(@my_string) - 1)
如果您需要进一步的帮助,请提供进一步的信息。
答案 1 :(得分:1)
Update MyTable
Set MyField = Case
When Right(MyField,1) = ',' Then Substring( MyField, 1, Len(MyField) - 1 )
Else MyField
End
顺便说一句,另一种选择:
Update MyTable
Set MyField = Substring( MyField, 1, Len(MyField) - 1 )
Where Value Like '%,'
测试脚本:
Declare @TestValues Table ( Value nvarchar(100) not null )
Insert @TestValues(Value) Values( 'XYZZY' )
Insert @TestValues(Value) Values( 'PLUGH' )
Insert @TestValues(Value) Values( 'SpiffyValueWithComma,' )
Select Case
When Right(Value,1) = ',' Then Substring( Value, 1, Len(Value) - 1 )
Else Value
End
From @TestValues
结果:
XYZZY PLUGH SpiffyValueWithComma
<强>更新强>
一种可能性是您的尾随值不是逗号,而是逗号和空格。如果是这种情况,那么您需要像这样修改您的查询:
Update MyTable
Set MyField = Substring( MyField, 1, Len(MyField) - 1 )
Where Value Like '%,'
Or Value Like '%, '