[英]SQL Error: Incorrect syntax error
这个程序有什么问题
CREATE PROCEDURE [dbo].[Question_ReadBySort]
-- Add the parameters for the stored procedure here
(
@PageNumber int,
@Gid bigint,
@Sorttype int,
@Df int
)
AS
BEGIN
if @Gid=0
BEGIN
With Cust AS
(SELECT * ,
ROW_NUMBER() OVER (order by q_id DESC) as RowNumber
from tbl_Question
where q_del=0)
END
ELSE
BEGIN
With Cust AS
(SELECT * ,
ROW_NUMBER() OVER (order by q_id DESC) as RowNumber
from tbl_Question
where q_del=1)
END
END
GO
并且此错误在SQL Server中发生:
消息156,级别15,状态1,过程Question_ReadBySort,第23行
关键字“ END”附近的语法不正确。消息156,级别15,状态1,过程Question_ReadBySort,第31行
关键字“ END”附近的语法不正确。
必须在CTE定义之后紧跟使用CTE的语句。 例如类似
WITH Cust
AS (SELECT *,
ROW_NUMBER() OVER (ORDER BY q_id DESC) AS RowNumber
FROM tbl_Question
WHERE q_del = CASE
WHEN @Gid = 0 THEN 0
ELSE 1
END)
SELECT *
FROM Cust
您不能使用IF
有条件地定义其他CTE定义,然后在以后尝试使用它们时使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.