Я пытаюсь создать запрос T-SQL, который возвращает два отдельных запроса (или, если есть намного лучший способ написать это, мне бы очень хотелось узнать, не используя CASE
, это прекрасно тоже! Мне интересно знать!)Использование случая для возврата разных наборов запросов
упрощенная квази-код версия запроса
DECLARE @ALob VARCHAR = 'Item1' /*Or User can write in 'All'*/
SELECT
CASE WHEN @ALob='Item1' THEN
(Select e.EventID, e.EventName, Count(*) Rows
From tbl_Events e
Where BLob='Item1')
WHEN @ALob='All'THEN
(Select e.EventID, e.EventName, Count(*) Rows
From tbl_Events e) END
Так довольно много пользователь может написать в DECLARE
разделе «ALL» или «iTEM1» И в зависимости на то, что они вставляют в него, будет отображаться первый запрос или второй запрос.
Теперь важно отметить, что во втором запросе нет Where BLob='Item1'
, что важно, потому что Lob в выборе «Все» может быть НИЧЕГО - NULL, Item1, что угодно - и я хочу подтянуть все.
Вся помощь приветствуется!
Да, честно говоря, я даже не мог использовать инструкции IF/THEN - я попробую! – FooBun
Хм - Похоже, что он побежал успешно, но он не выплевывает какую-либо фактическую информацию - он просто читает «Успешно завершена команда» – FooBun
Если ваши результаты не получаются, вероятно, из-за того, что @ALob не соответствует Item1 или All. Проверьте мои изменения. Это показывает, как использовать условие по умолчанию для If/Then –