无法找到一个适当的例子(或者我只是看错方向)。如何在WITH中使用IF语句?
根据传入参数值,我需要更改WHERE
条件SELECT
。
例如,我买了价值“所有”参数@bookType
,我需要做这样的事情:
IF @bookType = 'All'
SELECT * FROM tBooks
WHERE BookType != 'Template' AND BookGroup='Library'
ELSE
SELECT * FROM tBooks
WHERE BookType = @bookType AND [email protected]
看似简单,但我需要这个IF内侧:
WITH Books AS (
IF...
...
), bookIds AS (
...
...
)
这不起作用,因为我开始收到'Incorrect syntax near IF'
。我究竟做错了什么?或者,也许有可能隐藏 WHERE
语句(根据参数值更改)?
标记您正在使用的dbms。 (该代码是特定于产品的。) – jarlh
已更新的标签(mssql,以及标签将其更改为sql server) –