2017-11-03 14 views
0

coalesce을 사용하여 변수 (@var)가 ','인지 확인하고 ''(빈 문자열)로 바꿀 수 있습니까? 의 역 같은SQL Server : 병합을 사용하여 문자 존재 여부를 확인하고 바꾸기

뭔가 : @var = ',' 그때 내가 원하는 경우에 따라서

coalese(',','') 

@var = ''

그러나 @var = 'a,b' 그때 내가 원하는 해달라고하면 그것은 변경 ->@var = 'a,b'

+0

https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql – gordatron

+2

왜 당신이 원하는 것 이것을 위해'COALESCE'를 사용 하시겠습니까? @var = ','THEN ''ELSE @var END' –

답변

2

합체는 NULL을 처리하기 위해 특별히입니다 .. 아마도 replace 함수를 사용할 수 있을까요?

replace(field,',','') 
당신이 경우 사용할 수있는 좀 더 구체적인 뭔가

https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql

:

set @var = case when @var = ',' then '' else @var end 
+0

이 ','를 ''로 대체하는 것이 더 좋습니다. ','가 @var에 포함 된 유일한 문자 인 경우에만 바꿔야합니다. – aggicd

+0

@aggicd 질문이 명확하지 않습니다. 'COALESCE'는 * 아무것도 대체하는 것과 아무런 관련이 없습니다. 평등을 확인하고 싶다면 교체도 없습니다. 평등과 과제에 대한 확인 만이 가능합니다. –

+0

@aggicd 사례 문장을 사용하여 답변을 업데이트했습니다. – gordatron