相关疑难解决方法(0)

NOT IN子句和NULL值

当我得到不同的记录计数时,出现了这个问题,我认为是使用not in where约束的相同查询,另一个是a left join.not in约束中的表有一个空值(坏数据),导致该查询返回0个记录的计数.我有点理解为什么,但我可以使用一些帮助来完全理解这个概念.

简单地说,为什么查询A返回结果但B不返回?

A: select 'true' where 3 in (1, 2, 3, null)
B: select 'true' where 3 not in (1, 2, null)
Run Code Online (Sandbox Code Playgroud)

这是在SQL Server 2005上.我还发现调用set ansi_nulls off导致B返回结果.

sql t-sql sql-server null notin

233
推荐指数
10
解决办法
26万
查看次数

SQL使用CASE的位置

我有一个where子句

    ... Where TruckID IN (select VanID from Vantbl)
Run Code Online (Sandbox Code Playgroud)

我喜欢使用一个案例,因此它足够聪明

我有完整的后续行动

     ...  Where TruckID IN 
       CASE WHEN @VehicleType = 'VAN'
        THEN (select VanID from Vantbl)
      CASE WHEN @VehicleType = 'SUV'
       THEN (select SUVID from SUVtbl)
     END
Run Code Online (Sandbox Code Playgroud)

但似乎没有工作.我可以用任何方式让它像这样工作.

sql

2
推荐指数
1
解决办法
4222
查看次数

标签 统计

sql ×2

notin ×1

null ×1

sql-server ×1

t-sql ×1