web-dev-qa-db-ja.com

Oracleのwhereステートメントで大文字と小文字を記述する方法

以下の文を書きました。 MySQLでは問題なく実行されますが、Oracleではエラーで失敗します。

meg:ORA-00905:キーワードがありません

このSQLはどのように記述すればよいですか?

SELECT count(*)   
FROM  userTable 
WHERE ( CASE WHEN mac IS NULL THEN mac IS NULL ELSE mac = '000fe95erd32' END )
1
jason zhang

ケースを実行する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 を参照してください。

0
Steve Ruben