哪里不相等

WHERE NOT EQUAL

我有以下 SQL 声明:

select s.conclusion, t.* from trip t 
JOIN triprequirementsmapping m ON m.tripid = t.trip_id
JOIN approvalsubmission s ON s.requested = m.corporatetravelrequesturi
where s.conclusion <> 'DISCONTINUED'

对于这个例子,s.conclusion 的值为 null。

问题

这个查询 return 没有行,当我期望它是 return 一行时,因为 s.conclusion 不是 DISCONTINUED

问题

如何对 return 所有不具有值 DISCONTINUED 的行执行 WHERE 子句?

您需要明确处理 NULL 值:

where s.conclusion <> 'DISCONTINUED' or s.conclusion IS NULL

Postgres 为这种情况提供了一个有用的运算符,它按预期处理 NULL 值。

where s.conclusion is distinct from 'DISCONTINUED'