2011-04-08 55 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