对不起,如果之前有人询问,我真的搜索过但找不到。
我要做的是分配' null'或者' not null'到varchar变量,具体取决于MS SQL中的参数。在第一个,用户只有在他/她选择1作为索引时才会看到描述。在第二个,如果记录的年份列大于2005,用户将看到描述。我正在尝试的代码在下面,但没有工作。有人可以帮我解决这个问题吗?真的很感激。
感谢。
--- First one---
Declare @index int;
Select * from Cars
Where Description is (case when @index = 1 then ‘not null’ else ‘null’ end)
---Second one----
Select * from Cars
where Description is (case when Cars.Year > 2005 then ‘not null’ else ‘null’ end)
答案 0 :(得分:3)
第一个:
SELECT *
FROM Cars
WHERE (Description IS NOT NULL) AND (@index = 1)
OR
(Description IS NULL) AND (@index <> 1)
第二个:
SELECT *
FROM Cars
WHERE (Description IS NOT NULL) AND (Year > 2005)
OR
(Description IS NULL) AND (Year <= 2005)
SQL中的 CASE
是表达式,不能用作流控制语句。