【发布时间】:2016-12-07 04:50:41
【问题描述】:
(重要提示:我不知道值的列表,IN 值是一个参数..)
我想使用 IN 选择表中的所有行,值是 varchar 类型但可能有空值,我如何查询包括空值在内的所有行?
例子:
SELECT * FROM people WHERE name IN('Paul', 'Daniel', 'Yakov', null)
此查询将返回 Paul、Daniel 或 Yakov,但绝不会返回名称为 null 的行。
一个解决方案可能会建立一个联合:
SELECT * FROM people WHERE name IN('Paul', 'Daniel', 'Yakov', null)
UNION ALL
SELECT * FROM people WHERE name IN(??????)
用??????我的意思是我需要放什么来选择空值?
你能帮忙吗?,谢谢。
重要提示:如何检查 IN 列表中是否存在空值?
【问题讨论】:
-
你传递的参数是什么类型的数组或变量?您可以传递不带 null 的值或删除那些为 null 的变量,然后手动使用 OR name IS NULL