SQL Where子句基于另一个参数的条件赋值

时间:2010-04-09 13:25:26

标签: sql conditional

我需要生成一个报告,用户可以在单选按钮中选择所有问题,未解决问题或已解决的问题。在我看来,我有一个isClosed位列。如果我没有All Issues单选框,我就会这样做:

SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords

但是我需要在isClosed = @ViewClosedRecords时移除@ViewAllRecords = true条件。我该怎么做?

5 个答案:

答案 0 :(得分:3)

SELECT *
FROM MyView
WHERE @ViewAllRecords OR isClosed = @ViewClosedRecords

善,

答案 1 :(得分:1)

select *
from MyView
WHERE isClosed = @ViewClosedRecords
OR @ViewAllRecords

当用户在单选按钮中选择“所有问题”时,将@ViewAllRecords参数设置为true。

答案 2 :(得分:1)

WHERE
(@ViewAllRecords = false AND isClosed = @ViewClosedRecords)
OR 
(@ViewAllRecords = true)

答案 3 :(得分:1)

以下内容将为您提供isClosed = @ViewClosedRecords的所有行。如果@ViewAllRecords = true则会返回所有行并忽略isClosed

SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords
   OR @ViewAllRecords = true

答案 4 :(得分:1)

WHERE (@ViewAllRecords <> true AND isClosed = @ViewClosedRecords)