Условное присвоение предложения SQL Where на основе другого параметра - PullRequest
0 голосов
/ 09 апреля 2010

Мне нужно создать отчет, в котором пользователь может выбрать радиокнопку «Все проблемы», «Открытые проблемы» или «Закрытые проблемы» На мой взгляд, у меня есть битовый столбец isClosed. Если бы у меня не было радиоблока All Issues, я бы просто сделал:

SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords

Однако мне нужно удалить условие isClosed = @ViewClosedRecords, когда @ViewAllRecords = true. Как бы я это сделал?

Ответы [ 5 ]

3 голосов
/ 09 апреля 2010
SELECT *
FROM MyView
WHERE @ViewAllRecords OR isClosed = @ViewClosedRecords

Доброжелательность,

Dan

1 голос
/ 09 апреля 2010
WHERE (@ViewAllRecords <> true AND isClosed = @ViewClosedRecords)
1 голос
/ 09 апреля 2010

Следующее даст вам все строки с isClosed = @ViewClosedRecords. Если @ViewAllRecords = true, он вернет все строки и проигнорирует isClosed.

SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords
   OR @ViewAllRecords = true
1 голос
/ 09 апреля 2010
WHERE
(@ViewAllRecords = false AND isClosed = @ViewClosedRecords)
OR 
(@ViewAllRecords = true)
1 голос
/ 09 апреля 2010
select *
from MyView
WHERE isClosed = @ViewClosedRecords
OR @ViewAllRecords

И установить @ViewAllRecords параметры на true, когда пользователь выбирает «Все проблемы» в переключателе.

...