2013-07-18 1 views
3

스피 해당 테이블의 데이터가있는 경우 열 데이터의 모든 열이있는 경우 내가 내 값이 1되고 싶은 존재하는 경우 SQL의 테이블 열에있는 데이터의 가용성을 확인 하시겠습니까? 내가 몇 가지 열이 테이블 TestTable을 가진

  C1 | C2 | C3 | c4 
      'ab'| 1 | 09 |   //CASE1 [ must return 1] 
       | | |   //CASE2 [ must return 0] 

내가 확인하고 싶은 말은 빈 (데이터 없음) 그러면 내 값이 0이 되길 원합니다.

어느 누구도 도움이 될 수 있습니까?

답변

6

당신은 COALESCE 명령을 사용하여, 쿼리를 다음 시도 할 수 있습니다 : 아마 최고의

SELECT CASE WHEN C1+C2+C3+C4 = '' THEN 0 ELSE 1 END 
FROM TestTable 

또는 : 빈 값이 실제로 NULL을하지만 빈 문자열, 쿼리가 변경 될 수없는 경우

SELECT CASE WHEN COALESCE(C1,C2,C3,C4) IS NULL THEN 0 ELSE 1 END 
FROM TestTable 

을 변형을 사용하여 NULL과 빈 문자열을 모두 확인하십시오.

SELECT CASE WHEN COALESCE(C1,'')+COALESCE(C2,'')+COALESCE(C3,'')+COALESCE(C4,'') = '' THEN 0 ELSE 1 END 
FROM TestTable 
+0

SELECT 사례 COALESCE (id, name, temp) < > ''그때 시험에서 끝난다. (0 AS BIT) 끝. 여기서 첫 번째 열만 고려합니다. 두 번째/세 번째 열의 값이 0인데 출력이 0이 아니고 iam은 1을 가져야합니다. –

+0

열을 먼저 고려해야하며 두 번째는 무시되고 다른 조건은 무시됩니다. 조건을 확인해야합니다. 모든 열 값 –

+0

이 방법은 작동 선택 사례 합병 (id + 이름 + 온도, '') <> ''THEN 1 ELSE CAST (0 AS BIT) 끝 시험 –

관련 문제