我想使用下面的查询返回一些数据。
select * from table where code_value not in ('44','45','46')
此语句返回除具有 code_value = null .我想得到 null 列也可以。我怎么能得到那个?
code_value = null
null
mwyxok5s1#
使用 IS NULL :
IS NULL
WHERE (code_value IS NULL OR code_value not in ('44','45','46')); ``` `NOT IN` 当与未知值或 `NULL` 价值观。
pjngdqdw2#
直接比较 NULL 是正确的解决方案。但我用这个来说明 IN . 更像是:
NULL
IN
select t.* from t except select t.* from t where code_value not in ('44', '45', '46');
比 not in . 这也不确切,因为 except 删除重复项。但逻辑上更接近于相反。
not in
except
cotxawn73#
我会用 isnull 与代码值中不存在的默认值结合使用;
isnull
select * from table where isnull(code_value,'<<non existing value>>') not in ('44','45','46')
3条答案
按热度按时间mwyxok5s1#
使用
IS NULL
:pjngdqdw2#
直接比较
NULL
是正确的解决方案。但我用这个来说明IN
. 更像是:比
not in
. 这也不确切,因为except
删除重复项。但逻辑上更接近于相反。cotxawn73#
我会用
isnull
与代码值中不存在的默认值结合使用;