如何从SQL查询中的逗号分隔列表中删除最后一个逗号?SQL,在逗号分隔列表末尾删除逗号的外观
我已经做了一个样本,我得到一个逗号分隔的字符串作为输出。但是我发现逗号在字符串结束后正在进行。我曾试图修剪它,但无法做到这一点。任何人都可以帮我解决这个问题吗?
我得到的字符串看起来像这样
例如: - 一些文字,一些文字,甚至更大,还更,
如何从SQL查询中的逗号分隔列表中删除最后一个逗号?SQL,在逗号分隔列表末尾删除逗号的外观
我已经做了一个样本,我得到一个逗号分隔的字符串作为输出。但是我发现逗号在字符串结束后正在进行。我曾试图修剪它,但无法做到这一点。任何人都可以帮我解决这个问题吗?
我得到的字符串看起来像这样
例如: - 一些文字,一些文字,甚至更大,还更,
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)
如果您需要进一步的帮助,你应该提供进一步的信息。
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 '%, '
nopes yaar它不工作。 – 2011-04-08 04:41:07
@Febin - 如果这不起作用,那么您的数据会出错。你能否提供一些样本输入,特别是上面假设返回错误结果的样本? – Thomas 2011-04-08 04:46:49
- 我尝试了你的测试脚本。它的工作很好,谢谢你的好回答。但我很困惑,因为在我的存档过程中,iam将我的值作为commma分离列表返回。我只想从列表中删除最后一个逗号,所以在这里不需要任何表格。我怎么能修剪掉这个呢 – 2011-04-08 04:52:06
谢谢,它真的帮了我 – 2011-04-08 04:57:14