2011-04-08 57 views
1

如何从SQL查询中的逗号分隔列表中删除最后一个逗号?SQL,在逗号分隔列表末尾删除逗号的外观

我已经做了一个样本,我得到一个逗号分隔的字符串作为输出。但是我发现逗号在字符串结束后正在进行。我曾试图修剪它,但无法做到这一点。任何人都可以帮我解决这个问题吗?

我得到的字符串看起来像这样

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

回答

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) 

如果您需要进一步的帮助,你应该提供进一步的信息。

+0

谢谢,它真的帮了我 – 2011-04-08 04:57:14

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 

更新

一个possibiity是你的尾随值不是逗号,而是一个逗号和空格。如果是这样的话,那么你需要修改您的查询,像这样:

Update MyTable 
Set MyField = Substring(MyField, 1, Len(MyField) - 1) 
Where Value Like '%,' 
    Or Value Like '%, ' 
+0

nopes yaar它不工作。 – 2011-04-08 04:41:07

+0

@Febin - 如果这不起作用,那么您的数据会出错。你能否提供一些样本输入,特别是上面假设返回错误结果的样本? – Thomas 2011-04-08 04:46:49

+0

- 我尝试了你的测试脚本。它的工作很好,谢谢你的好回答。但我很困惑,因为在我的存档过程中,iam将我的值作为commma分离列表返回。我只想从列表中删除最后一个逗号,所以在这里不需要任何表格。我怎么能修剪掉这个呢 – 2011-04-08 04:52:06