WHERE
句の条件でデータを取得したい。
これが私のテーブルのようなものです:
Name Location Age
----------------------
AAA Bhuj 24
BBB Mumbai 22
CCC Bhuj 18
DDD Bhuj 27
EEE Mumbai 26
WHERE
句の私の条件は次のとおりです。if location = 'Bhuj' then Age>20 else if location = 'Mumbai' then Age>25
私はこれを達成するためにこのコードを試しています:
SELECT * FROM testing
WHERE
CASE Location WHEN 'Bhuj' THEN Age>20
WHEN 'Mumbai' THEN Age>25
END;
このコードはMySQL( このSQLFiddleを参照 )では正常に機能しますが、SQL Server( このSQLFiddleを参照 )では機能せず、次のエラーが発生します。
'>'の近くの構文が正しくありません。:SELECT * FROMテストWHEREケース場所 'Bhuj'の場合はAge> 20の場合 'Mumbai'の場合はAge> 25で終了
なにか提案を?
SELECT * FROM testing
WHERE
Age > case Location When 'Bhuj' then 20
When 'Mumbai' then 25
end
これがあなたが達成しようとしていることだと思います
SELECT *
FROM testing
WHERE (Location = 'Bhuj' AND Age>20)
OR (Location = 'Mumbai' AND Age>25)
チェック SQLFiddle
更新:
Caseステートメントは値を返します。その中に条件を含めることはできません。