use*_*081 2 sql postgresql boolean-expression
有没有更简单的实施方法
select (case when ((a is null) or (b is null)) then null else (case when
(a = b) then true else false end) end) from ...
Run Code Online (Sandbox Code Playgroud)
在PostgreSQL或其他主要的RDBMS中呢?
我认为最简单的是:
select (a = b)
Run Code Online (Sandbox Code Playgroud)
尽管这并不是您的逻辑,但NULL如果aor或bare,则返回此值NULL。可能已经足够了。
如果你希望它返回false,如果任何 a或b有NULL,但不同时,则:
select (a = b) and nullif(coalesce(a, b) is null, true)
Run Code Online (Sandbox Code Playgroud)
编辑:
因为您询问其他数据库,所以表达逻辑的一种方法是:
(case when a = b then 1 when a <> b then 0 end) as flag
Run Code Online (Sandbox Code Playgroud)
NULL如果为,则返回NULL。
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |