Не удалось найти правильный пример этого (или, может быть, я просто смотрю в неправильном направлении).Как использовать оператор IF внутри WITH?
В зависимости от значения входящего параметра мне нужно изменить WHERE
условие для SELECT
.
Например, я получил параметр @bookType
со значением «All», и мне нужно сделать что-то вроде этого:
IF @bookType = 'All'
SELECT * FROM tBooks
WHERE BookType != 'Template' AND BookGroup='Library'
ELSE
SELECT * FROM tBooks
WHERE BookType = @bookType AND [email protected]
кажется простым, но мне нужно это, если внутри С:
WITH Books AS (
IF...
...
), bookIds AS (
...
...
)
И это не работает, потому что я начинаю получать 'Incorrect syntax near IF'
. Что именно я делаю неправильно? Или, может быть, можно скрыть это IF
внутри оператора WHERE
(изменить, где в зависимости от значения параметра)?
Тег dbms, который вы используете. (Этот код специфичен для продукта.) – jarlh
Обновленные теги (mssql, ну, теги меняют его на sql-сервер) –