2011-12-08 2 views
1

sqlserver에서 "case"를 사용한다는 쿼리를 작성했지만 오류가 발생했습니다.이 경우입니다.SQL Server에서 대소 문자를 쓰는 방법은 무엇입니까?

(case when sm.SegCode =0 then '' else sm.SegCode = 7 end) 

도와주세요.

답장을 보내 주셔서 감사합니다. 실제로 매개 변수가 @id입니다. 이제 내가 0이 아닌지 확인하고 싶습니다. 그 조건을 확인하십시오. sm.segcode@id이 0이면 sm.segcode = @id 인 상태를 확인하고 싶지 않습니다.

  • else sm.SegCode = 7
  • 빈 문자열 유형의 시도 혼합과 INT

의 구문 오류가 대신을 시도해보십시오

+3

전체 SQL 문을 게시하십시오. –

+0

SSMS에서 CASE 커서를 CASE로 설정하면 F1 키를 누르면 http://msdn.microsoft.com/en-us/library/ms181765.aspx 문서가 표시됩니다. –

+1

T-SQL의 'CASE'는 다른 값을 반환하기위한 방법 일뿐입니다. **이 아닌 ** 흐름 제어문입니다. 이 코드 또는 해당 코드를 실행하기 위해 CASE를 사용할 수 없습니다. 값을 반환하십시오 ... –

답변

2

당신이 보여 문을 두 가지 문제가 있습니다 :

case when sm.SegCode = 0 then '' else '7' end 

물론 부분적으로 gue 나는 빈 문자열 또는 정수 중 하나에 결과를 설정하여 달성하려는 정확히 잘 모르겠어요 때문에 SS는 7

1

이 문법적으로 올바른 것 :

case sm.SegCode when '0' then '' else '7' end 

또는

http://msdn.microsoft.com/en-us/library/ms181765.aspx

: 그 열이 NULL 허용하는 경우
case sm.SegCode when 0 then NULL else 7 end 

입니다 그건 당신이 때 문서에 경우에 대한 자세한 내용을 볼 수 있습니다

입니다

0

항상 Case 문에서 Same DATA TYPE 값을 반환하려고, 감사

, 그래서 7 else 문에 '7' 것이 VARCHAR에 각 값을 변환 할 수 있도록, 최선이 아니다는 else 섹션 INT를 반환하는 반면 첫 번째 condistion이 VARCHAR 반환 보인다
(CASE 
    WHEN sm.SegCode = 0 THEN '' 
ELSE '7' END) 
관련 문제