【发布时间】:2014-03-04 23:00:27
【问题描述】:
我有一个存储过程,它的参数可以是 NULL 或非 NULL 值。 我需要在 WHERE 子句中比较这个参数。如果参数为非NULL,
where ...
and parameter = non-NULL-value
会起作用。
但是当参数为空时,它将不符合ANSI:
where ...
and parameter = NULL
我不想编写两个单独的查询。如何确保在同一查询中符合 ANSI?
【问题讨论】:
-
当参数为
NULL时,你想得到什么结果? -
您的第二个查询符合 ANSI。
where子句总是返回 false。 -
列是什么类型的?
-
如果你的意思是查询谓词是由参数驱动的,看看here as well
-
@Gordon,实际上结果是
UNKNOWN。
标签: sql sql-server comparison ansi-sql