如何從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