首页 > 解决方案 > 在嵌套查询中处理 NULL 值

问题描述

嵌套查询返回 NULL(t 的值),但我想返回 0 而不是 NULL,所以我添加了 case 条件。但这个查询仍然返回 NULL

select case when t.a is NULL then 0 else t.a end 
from

(select QTIB_REQ_ as a from qb_requisitions_all 
where  QTIB_REQ_ IN ($Req_disabled_WA) 
and CLIENT___BENCH___NON_BILLABLE IN ( 'Non Billable', 'Non-Billable', 'NonBillable') 
and DATEDIFF(CURDATE(),TARGET_FILL_DATE)<30 
and DATEDIFF(CURDATE(),TARGET_FILL_DATE)>0) as t

标签: mysqlsql

解决方案


IFNULL()如果表达式是 ,函数允许您返回替代值NULL。尝试这个:

select IFNULL(QTIB_REQ_, 0) as a from qb_requisitions_all 
where  QTIB_REQ_ IN ($Req_disabled_WA) 
and CLIENT___BENCH___NON_BILLABLE IN ( 'Non Billable', 'Non-Billable', 'NonBillable') 
and DATEDIFF(CURDATE(),TARGET_FILL_DATE)<30 
and DATEDIFF(CURDATE(),TARGET_FILL_DATE)>0

推荐阅读