1

有一张表只有一行有 4 个日期列,最初所有日期值都是空的,所以

if Exists(select 1 from rep_master where pacdt_1=null OR
pacdt_2=null OR
pacdt_3=null OR
pacdt_4=null)
select 0
else
select 1

这个要回来了1

if Exists(select 1 from rep_master where ISNULL(pacdt_1,0)=0 or
ISNULL(pacdt_2,0)=0  or
ISNULL(pacdt_3,0)=0 or
ISNULL(pacdt_4,0)=0 )
select 0
else
select 1

这个正在返回0,这是正确的结果
我无法弄清楚第一个查询有什么问题?

4

2 回答 2

3

使用IS NULL而不是= NULL

所以:

if Exists(select 1 from rep_master 
          where pacdt_1 is null OR pacdt_2 is null OR
                pacdt_3 is null OR pacdt_4 is null)
   select 0
else
   select 1
于 2012-12-03T11:22:12.307 回答
0

你不能等于null,你必须使用IS

if Exists(select 1 from rep_master where pacdt_1 IS null OR
pacdt_2 IS NULL OR
pacdt_3 IS NULL OR
pacdt_4 IS NULL)
select 0
else
select 1

获取您使用的值不为 null 的位置IS NOT

if Exists(select 1 from rep_master where pacdt_1 IS NOT null OR
pacdt_2 IS NOT NULL OR
pacdt_3 IS NOT NULL OR
pacdt_4 IS NOT NULL)
select 0
else
select 1
于 2012-12-03T11:24:18.900 回答