1

是否可以NULL在语句中包含类似的内容SELECT * FROM my_table WHERE my_field IN (1,2,NULL);

如果不是,您如何建议只允许几个整数或 NULL?

最好使用OR这样的:

SELECT *
FROM my_table
WHERE
   my_field IN (1,2)
OR my_field IS NULL;
4

1 回答 1

3

使用OR,它是你想要的最清晰的表达。

您还可以提供一个默认值以在何时my_field使用NULL

SELECT *
FROM my_table
WHERE COALESCE(my_field, 1) IN (1,2);

但是NULL在-list 中使用 aIN行不通的,因为NULL通常不等于. (它也不是不相等的——它是未定义的)。NULL

于 2013-11-07T20:29:33.367 回答