1

4 つの日付列を持つ行が 1 つしかないテーブルが 1 つあります。最初はすべての日付値が null であるため、

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 に答える