以下表达式
SELECT * FROM t
WHERE a = (SELECT MAX(a) FROM s)
当子查询返回NULL时,不返回任何内容-即使其中包含NULL t.a
。
如果子查询有任何匹配项,当子查询从t返回NULL和非NULL值时,我想从t返回NULL值。
有没有一种干净的方法?
该表达式x IS NOT DISTINCT FROM y
等效于(x = y) OR (x IS NULL AND y IS NULL)
。所以:
SELECT * FROM t
WHERE a IS NOT DISTINCT FROM (SELECT MAX(a) FROM s)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句