Oracle SQL CASE WHEN ORA-00932:不一致的数据类型:预期CHAR得到NUMBER 00932. 00000 - "不一致的数据类型:预期%s得到%s"

Mat*_*att 3 sql oracle case-when oracle-sqldeveloper

得到错误

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
Run Code Online (Sandbox Code Playgroud)

如果我用else输出的数字或文本运行它,就像这样,它可以工作.

SELECT distinct 
CASE when t.cancelled = 'TRUE' then '0' 
else 'xxx' END AMOUNT,
FROM table t
Run Code Online (Sandbox Code Playgroud)

rad*_*dar 8

0而不是'0'.金额是一个数字,并且不引用数字.

SELECT distinct 
CASE when t.cancelled = 'TRUE' then 0 
else t.amount END AMOUNT,
FROM table t
Run Code Online (Sandbox Code Playgroud)