以下の文を書きました。 MySQLでは問題なく実行されますが、Oracleではエラーで失敗します。
meg:ORA-00905:キーワードがありません
このSQLはどのように記述すればよいですか?
SELECT count(*)
FROM userTable
WHERE ( CASE WHEN mac IS NULL THEN mac IS NULL ELSE mac = '000fe95erd32' END )
ケースを実行する2つの方法を混同しています。次のいずれかが必要です。
CASE <expression>
WHEN <comparison expression> THEN <return expression>
…
または
CASE
WHEN <condition> THEN <return expression>
...
クエリが不正です
SELECT count(*)
FROM userTable
WHERE ( CASE WHEN mac IS NULL THEN mac IS NULL ELSE mac = '000fe95erd32' END )
あなたの条項はよくありません。あなたはこのように別の方法でそれを行うことができます:
SELECT count(*)
FROM userTable
WHERE mac is null or mac = '000fe95erd32';
詳細は here を参照してください。