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

감사합니다. 정말 도움이되었습니다. –

1
Update MyTable 
Set MyField = Case 
       When Right(MyField,1) = ',' Then Substring(MyField, 1, Len(MyField) - 1) 
       Else MyField 
       End 

, BTW 또 다른 대안 :

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

아니요 yaar이 작동하지 않습니다. –

+0

@Febin - 작동하지 않는 경우 데이터에 이상이 있습니다. 위의 결과가 잘못된 결과를 반환하는 샘플 입력과 구체적으로 입력 할 수 있습니까? – Thomas

+0

- 테스트 스크립트를 테스트했습니다. 멋진 답변을 주신 덕분입니다. 그러나 나는 혼란 스럽다. 왜냐하면 나의 열렬한 절차에서 나는 쉼표로 분리 된 목록으로 나의 가치를 되 돌린다. 목록에서 마지막 쉼표 만 제거하고 싶으므로 여기에 표가 필요 없습니다. 내가 어떻게 그걸 다듬을 수 있지? –

관련 문제