【陷阱系列】SQLServer in/not in 陷阱


sql Server中不建议使用not in,因为会带来潜在的问题:

性能差都还能勉强接收,结果错误那后果可就严重了。可能产生结果错误的原因就是NOT IN 对null的处理方式,MSDN说明如下:

System_CAPS_ICON_caution.jpg

 Caution

Any null values returned by subquery or expression that are compared to test_expression using IN or NOT IN return UNKNowN. Using null values in together with IN or NOT IN can produce unexpected results.


语法:
test_expression [ NOT ] IN   
    ( subquery | expression [,...n ]  
    )   

千万注意子查询和表达式中不能出现null,使用in/not in时注意检查数据有效性。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...