2016-08-04 5 views
2

SQL에서이 기능을 실현하고 싶습니다. (기본적으로 b = 2이고 C에서 (3,4,5)는 두 개의 조건을 가지고 있습니다. 최상위 레벨).조건문의 결과 값에 기반한 조건부 실행

a = 1 인 경우 첫 번째 조건을 확인하고 그렇지 않으면 두 번째 조건을 검사해야합니다.

CASE 
    WHEN a=1 THEN {AND b=2} 
    ELSE {AND c in (3,4,5)} 

누군가이 문제와 관련하여 도움을 줄 수 있습니까? THEN 절 안에 전체 쿼리를 개별적으로 보관하려면 전체 쿼리가 너무 복잡합니다.

+0

예상되는 결과는 무엇입니까? 'when/else' 문을 시뮬레이트하기 위해 여러 개의'when' 문을 사용할 수 있습니다 ... – sgeddes

+1

어떤 RDBMS가 이것입니까? 태그를 추가하여 mysql, postgresql, sql-server, oracle 또는 db2 중 어느 것을 사용하는지 지정하십시오. –

답변

3
SELECT Stuff 
FROM Table 
WHERE 
SomeCondition 
AND 
(
    (a=1 AND b=2) 
OR 
    ((NOT a=1) AND (c in (3,4,5))) 
) 
+2

아 ... 답을 보는 중 "그 이유를 생각하지 않은 이유는 무엇입니까?"P – SoulRayder

+0

기꺼이 도와 드리겠습니다. –

관련 문제