1. ホーム
  2. sql

[解決済み] Oracle SQL CASE WHEN ORA-00932: inconsistent datatypes: expected CHAR got NUMBER 00932.ORA-00932.CASE WHEN ORA-00932: inconsistent datatypes: expected CHAR got NUMBER 00932. 00000 - "矛盾したデータ型: 予想された %s は %s になりました".

2022-02-18 23:22:55

質問

エラー発生

ORA-00932: inconsistent datatypes: expected CHAR got NUMBER 00932. 00000 - "inconsistent datatypes: expected %s got %s"

以下のクエリを実行すると

SELECT distinct 
CASE when t.cancelled = 'TRUE' then '0' 
else t.amount END AMOUNT,
FROM table t

このように、elseの出力に数字かテキストを指定して実行すると、うまくいくのです。

SELECT distinct 
CASE when t.cancelled = 'TRUE' then '0' 
else 'xxx' END AMOUNT,
FROM table t

解決方法は?

使用方法 0 の代わりに '0' . 金額は数字であり、数字は引用されません。

SELECT distinct 
CASE when t.cancelled = 'TRUE' then 0 
else t.amount END AMOUNT,
FROM table t