2013-07-09 32 views
0

在向以下查詢添加c.category <> 'AGILE'之後,結果集停止,包括c.categoryNULL值。我怎樣才能在我的結果集中回到NULL c.category的行,而不是做UNION爲什麼不等式測試會消除NULL值?

select 
      p.number, 
      p.method 
      ,sum(p.amount) AS amount 
      ,count(*) AS count,c.category 
from  payments p 
inner join headers a 
     on p.name = a.name 
inner join customer c 
     on c.number = p.number 
    and  a.status = 'APPROVED' 
    and  a.type IN ('REGULAR', 'TRANSFER', 'OTHER') 
    and  c.category <> 'AGILE' 
group by 
      p.payment_method 
      ,p.cust_number 
      ,c.u_cust_category 

回答

6

NULL既不等於也不不等於任何特定的值。如果你想包含NULL值,你會想要類似於

and( c.category <> 'AGILE' 
    or c.category IS NULL) 
+3

+1「NULL既不等於也不等於任何特定值」。甚至不是自己。 – Thilo

+0

@Justin洞穴短和點。謝謝!!! – Zzz

2

這只是工作:

(c.category <> 'AGILE' OR c.category IS NULL) 
2

這裏有一種方法:

AND (c.category IS NULL OR c.category <> 'AGILE') 

下面是另一個:

AND NVL(c.category, 'foo') <> 'AGILE' 
相關問題