【发布时间】:2017-07-12 04:07:37
【问题描述】:
找不到合适的例子(或者我只是看错了方向)。
根据传入的参数值,我需要将WHERE 的条件更改为SELECT。
例如,我得到参数@bookType 的值为“All”,我需要做这样的事情:
IF @bookType = 'All'
SELECT * FROM tBooks
WHERE BookType != 'Template' AND BookGroup='Library'
ELSE
SELECT * FROM tBooks
WHERE BookType = @bookType AND BookStatus=@bookStatus
看起来很简单,但我需要在 WITH 中使用这个 IF:
WITH Books AS (
IF...
...
), bookIds AS (
...
...
)
这不起作用,因为我开始收到'Incorrect syntax near IF'。我到底做错了什么?或者也许可以将这个IF 隐藏在WHERE 语句中(根据参数值更改位置)?
【问题讨论】:
-
标记您正在使用的 dbms。 (该代码是特定于产品的。)
-
更新标签(mssql,嗯,标签改成sql server)
标签: sql sql-server if-statement select with-statement