2012-09-06 5 views
0

3 열 (0에서 10 사이의 값만있는 정수 값 포함)이있는 테이블이 있습니다. 단일 쿼리를 사용하여 1 열의 테이블을 추출합니다.쿼리 sql이 사용자 지정 값을 반환합니다.

  1. 이 세 개의 열 중 하나가 값을 쿼리에 의해 생성 된 테이블의 컬럼의 0 ----> 값이있는 경우이어야 0도 :이 열은 다음과 같은 논리에 따라 값을 가정해야합니다.

  2. 마지막 세 개의 열 중 어느 것도 값이없는 경우 열의 0 ----> 값이 값 1

+0

시도 - 따라서 결코 0 - 요청이'일 TBL에서 1을 SELECT 것입니다 일치하는 쿼리,';-) – LSerni

+0

당신이 옳았습니다;) – GVillani82

답변

2

을 당신은 CASE 구조 또는 IF 기능을 찾고 있습니다 :이 특정한 경우

SELECT CASE WHEN (t.field1 = 0 OR t.field2 = 0 OR t.field3 = 0) THEN 0 
     ELSE 1 END AS value 
FROM t; 

당신은 또한 모든 구성원이 제로의 뜻있는 사실을 사용할 수 있습니다

SELECT CASE WHEN (t.field1*t.field2*t.field3 = 0) THEN 0 ELSE 1 END AS value 
FROM t; 

또는

: 제품을 제로 필드가 1 ~ 10에 항상있는 경우 19,333,210
1

이 간단한 경우 진술을 가정해야합니다. 어떤 NULL 값이없는 가정이 시도 :

select (case when col1 = 0 or col2 = 0 or col3 = 0 then 0 else 1 end) 
1

사실이

SELECT 
    CASE 
    WHEN column1 = 0 THEN 0 
    WHEN column2 = 0 THEN 0 
    WHEN column3 = 0 THEN 0 
    ELSE 1 
    END 
FROM urtable 
관련 문제