【发布时间】:2017-04-26 14:15:51
【问题描述】:
是否可以在存储过程中定义 with 子句并在 if else 语句中使用它,因为我总是得到一个错误?
BEGIN
WITH Test (F, A) AS
(
SELECT FM.ID, FM.Name
FROM [Test.Abc] FM
INNER JOIN [Organization] O on O.ABCID = FM.ID
)
IF(@var = 'case1')
BEGIN
SELECT *
FROM Test F
WHERE NOT F.ID = 'someID'
END
我总是在 if 语句之前收到“语法错误”错误
如果我将 with 子句移到 if 语句中,它可以正常工作。但我需要外面的 with 语句才能在不同的 if else 语句中重用它。
【问题讨论】:
-
你最好描述一下整个场景。现在看起来很奇怪:你的 sp 可能会返回结果集,也可能不会。如何使用它?
标签: sql sql-server common-table-expression with-statement