是否有可能避免编写两个选择查询,并使用一些case语句或逻辑组合到一个查询中。
如果Flag为true,则显示学生记录,其百分比为> 2,否则显示所有内容。
DECLARE @StudentPercentageFlag BIT = 1
IF(@StudentPercentageFlag = 1)
BEGIN
SELECT * FROM STUDENT WHERE STUDENTPERCENTAGE > 2
END
ELSE
BEGIN
SELECT * FROM STUDENT
END
答案 0 :(得分:2)
您可以延长条件:
DECLARE @StudentPercentageFlag BIT = 1;
SELECT *
FROM STUDENT
WHERE (STUDENTPERCENTAGE > 2 AND @StudentPercentageFlag = 1)
OR (@StudentPercentageFlag IS NULL)
OR (@StudentPercentageFlag <> 1);