[英]How to use IF statement inside WITH?
找不到合适的例子(或者也许我只是看错了方向)。
根据传入的参数值,我需要更改SELECT
WHERE
条件。
例如,我获得了@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
语句中(根据参数值更改位置)?
;
WITH Books AS (
SELECT * FROM tBooks
WHERE
(@BookType = 'All' AND BookType != 'Template' AND BookGroup='Library')
OR
(@BookType <> 'All' AND BookType = @bookType AND BookStatus=@bookStatus)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.