您的位置:首页 > 数据库

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

2018-03-28 16:59 267 查看
如果查询结果无返回值(查询不到数据),可用 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐