2016-08-04 26 views
2

SQLでこの機能を実現したい(基本的にb = 2で、(3,4,5)のcは、select文に追加する2つの条件です。トップレベル)。条件ステートメントの戻り値に基づく条件の条件付き実行

a = 1の場合、最初の条件をチェックします。それ以外の場合は、2番目の条件をチェックする必要があります。

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

誰かがこれについて私を助けることができますか?クエリ全体が、THEN句の中に別個に保持するには複雑すぎます。

+0

期待どおりの結果はありますか? 'when'ステートメントを使って' if/else'ステートメントをシミュレートすることができます... – 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

私たちは助けてくれてうれしいです。 –

関連する問題