欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sql_isnull对查询结果无返回值的处理

程序员文章站 2022-06-07 19:32:04
...

如果查询结果无返回值(查询不到数据),可用 case when + count() 进行处理

select isnull((SELECT a.status FROM t_a a WHERE a.id = tc.id AND a.flag = 1),0)

SELECT a.status FROM t_a a WHERE a.id = tc.id AND a.flag = 1
上面这条sql 可能无数据返回,导致执行isnull,数据库会进行类型转换,可能长时间一直在查询中

优化处理:

select case when
(select count(status) FROM t_a a WHERE a.id = tc.id AND a.flag = 1) = 1
then (SELECT a.status FROM t_a a WHERE a.id = tc.id AND a.flag = 1 )
else 0 
end
)

https://blog.csdn.net/icecoola_/article/details/79151488