2017-01-31 7 views
2

CASE 문을 사용하여 필드를 평가해야합니다. 필드 이름은 Commodity이고 varchar (255)입니다. 값이 다르므로 특정 문자 다음에 특정 부분을 추출해야합니다. 문자는 '>'입니다. 나는 다음과 같은 코드를 사용하여> 난 후 돌려 원하는 값을 마련 할 수 있었다 :CASE 문에서 CHARINDEX 및 SUBSTRING 사용

SUBSTRING(Commodity, CHARINDEX('>', Commodity) + 2, LEN(Commodity)) 

내 CASE 문에이 일을하는 방법 그러나 확실입니다. Is Null을 테스트 한 다음 'No Commodity'값을 지정해야합니다. 그렇다면>의 존재 여부를 테스트 한 다음 위의 코드를 구현하여 값을 반환해야합니다. 그렇다면>가 없을 때를 테스트해야하지만 null이 아니며 Commodity 필드의 값만 반환합니다.

답변

2

when 절에 다음 세 가지 조건 만 있으면됩니다. charindex을 사용하면

CASE 
WHEN commodity IS NULL THEN 'No Comodity' 
WHEN CHARINDEX('>', Commodity) > 0 THEN 
    SUBSTRING(commodity, CHARINDEX('>', commodity) + 2, LEN(commodity)) 
ELSE comodity 
END 
문자열에 > 문자가 있는지 확인할 수 있습니다.