在NAME表中,FIRST列具有null但未选择任何行.请帮我理解.
SELECT * FROM NAME WHERE FIRST != '1'
Run Code Online (Sandbox Code Playgroud)
das*_*ght 15
与任何比较null是假的- =和<>,>,<,等等.您也不能null在IN列表中使用- 它将被忽略.而且,两个nulls 甚至彼此不相等.
要获取空值,您需要明确地询问它们,如下所示:
SELECT * FROM NAME WHERE FIRST IS NULL OR FIRST != '1'
Run Code Online (Sandbox Code Playgroud)
Gor*_*off 10
与NULL的任何比较都返回NULL,这相当于FALSE.这是不平等的真实前夕.
如果要包含NULL值,请执行以下操作之一:
where first <> '1' or first is null
Run Code Online (Sandbox Code Playgroud)
要么
where coalesce(first, '<null>') <> '1'
Run Code Online (Sandbox Code Playgroud)