我必须在一些变量之后选择行,这些变量将打开或关闭某些条件,例如:
SELECT *
FROM table
WHERE field =
CASE @param
WHEN NULL THEN field
ELSE @param
END
换句话说..我想比较@param不是null,但我的选择不起作用。我该怎么办?
谢谢!
答案 0 :(得分:2)
当@param
为空时,它将使用field
,当@param
不为空时,它将使用@param
:
SELECT *
FROM table
WHERE field = ISNULL(@param,field)
但field = field
永远都是真的。
所以你可能想要的是:
SELECT *
FROM table
WHERE field = @param
and @param is not null
答案 1 :(得分:2)
为什么单个交换机使用Case? OR语句应该可以解决问题。
SELECT *
FROM table
WHERE @param IS NULL OR Field = @Param
答案 2 :(得分:0)
应该是这样的:
Object *apple;
apple = new Object();
delete apple;