SQL,在逗号分隔列表的末尾删除逗号的外观

时间:2011-04-08 04:32:27

标签: sql-server-2005

如何从SQL查询中的逗号分隔列表中删除最后一个逗号?

我做了一个示例,其中我得到一个逗号分隔的字符串作为输出。但我发现字符串结束后会出现一个逗号。我试图修剪它但却无法做到。任何人都可以帮我把它弄掉?

我的结果字符串看起来像这样

例如: - 一些文字,一些文字,甚至更多,更多,

2 个答案:

答案 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 '%, '