繁体   English   中英

SQL、Oracle NULL查询

[英]SQL, Oracle NULL query

我的查询中有这段代码,当我删除它时它工作正常,如果我保留它,我会得到一个

“ORA-00908:缺少 NULL 关键字”

信息。

CASE WHEN pp.phone_number is '0' THEN ''

我还有其他 When - Then 和一个 END 语句,所以不是那样的。

如果您想看的话,整个代码是:

CASE WHEN pp.country_code_number = 44 THEN '0'||SUBSTR(REGEXP_REPLACE(pp.phone_number, '[^0-9]+', ''),-10) 
                WHEN pp.country_code_number IS NULL THEN '0'||SUBSTR(REGEXP_REPLACE(pp.phone_number, '[^0-9]+', ''),-10) 
                WHEN pp.phone_number is '0' THEN ''
                WHEN pp.phone_number is NULL THEN 'Blank'
                ELSE '***ERROR***'
                END 

谢谢大家

IS仅用于检查NULL 例如

CASE WHEN pp.phone_number IS NULL THEN …

你需要的是:

CASE WHEN pp.phone_number = '0' THEN ''
…

顺便说一句,您使用的是一个看起来像数字的字符串( '0' ); 也许你需要检查你的类型。

从您到目前为止发布的内容来看,应该是= ,而is

case when pp.phone_number = '0' then ''

is 用于 NULL,例如is nullis not null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM