0

在我添加c.category <> 'AGILE'到下面的查询后,结果集停止NULL包含c.category. 如何NULL在我的结果集中获取带有 c.category 的行,而不执行UNION?

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
4

3 回答 3

6

NULL既不等于也不不等于任何特定值。如果要包含 NULL 值,则需要类似

and(   c.category <> 'AGILE'
    or c.category IS NULL)
于 2013-07-09T23:59:04.770 回答
2

这很简单:

(c.category <> 'AGILE' OR c.category IS NULL)
于 2013-07-09T23:58:32.193 回答
2

这是一种方法:

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

这是另一个:

AND NVL(c.category, 'foo') <> 'AGILE'
于 2013-07-09T23:58:57.523 回答