为什么不等式测试会消除NULL值?

Zzz*_*Zzz 0 sql oracle

在我添加c.category <> 'AGILE'到下面的查询后,结果集停止,包括NULLc.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
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 6

NULL既不等于也不等于任何特定的价值.如果你想包含NULL值,你会想要类似的东西

and(   c.category <> 'AGILE'
    or c.category IS NULL)
Run Code Online (Sandbox Code Playgroud)

  • +1"NULL既不等于也不等于任何特定值".甚至不是自己. (3认同)