Heim >Datenbank >MySQL-Tutorial >表里存在NULL值导致not in子查询失效的问题

表里存在NULL值导致not in子查询失效的问题

WBOY
WBOYOriginal
2016-06-07 14:53:461323Durchsuche

表里存在NULL值导致not in子查询失效的问题 --这是我第一次给业务写的SQL语句,查询来数据为0,当时没考虑太多就发出去了。 后业务给我看了几条测试数据,我发现确实查询结果不对。br--再看语句逻辑确实没错,后经过排查是BB里有几行cust_id为NULL导致not in


表里存在NULL值导致not in子查询失效的问题

 

--这是我第一次给业务写的SQL语句,查询来数据为0,当时没考虑太多就发出去了。 后业务给我看了几条测试数据,我发现确实查询结果不对。
--再看语句逻辑确实没错,后经过排查是BB里有几行cust_id为NULL导致not in 查询结果失效。  www.2cto.com  

 


--改良前的语句
select * from AA a with(nolock)
where a.status_code='04'

and a.issue_date>='2012-01-01' and a.issue_date

and LEFT(a.manorg_code,4)='8640'

and a.cust_id not in

(

    select aa.cust_id from BB aa  with(nolock) where aa.sheet_type='Q' and aa.acttype_code in ('01','02','16','19')

)

 

--改良后的语句

 

select * from AA a with(nolock)

where a.status_code='04'

and a.issue_date>='2012-01-01' and a.issue_date

and LEFT(a.manorg_code,4)='8640'

and a.cust_id not in

(

select ISNULL(aa.cust_id,'') from BB aa with(nolock) where aa.sheet_type='Q' and aa.acttype_code in ('01','02','16','19')

)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn