投稿する前にいくつかの質問を確認しましたが、次のコードの構文に間違いがないかどうかを判断できませんでしたか? END
の両方で同じエラーが表示されます。ありがとう! ASすぐにCTEの定義は、あなたはそれが有効な構文ではありません、他のCTEから/削除/更新を選択しなければなりません終えるようCTEでIF BEGIN ENDを使用しています:キーワード「End」の近くの構文が正しくありません
WITH CTE (Col1, col2, col3,...) --<-- Column names optional
AS
(
-- CTE's Definition
)
Select/Delete/Update
FROM CTE
を次のように
IF @UserId =''
BEGIN
;WITH cte AS (
SELECT * FROM (
SELECT [EntryId],
CAST(ROW_NUMBER() OVER (ORDER BY Date DESC) AS INT) AS RN_PARENT,
0 AS RN_CHILD
FROM Entries
WHERE [EntryDepthness] = 0 AND DiscussionWallId = @DiscussionWallId
) AS Main
WHERE ((RN_PARENT BETWEEN(@PageIndex -1) * (@PageSize) + 1 AND (((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1))
UNION ALL
SELECT e.[EntryId],
0 AS RN_PARENT,
CAST(ROW_NUMBER() OVER (ORDER BY e.Date DESC) AS INT) AS RN_CHILD
FROM Entries e
INNER JOIN cte v ON v.EntryId = e.ParentEntryId
WHERE e.EntryDepthness = 1
)
END
ELSE
BEGIN
;WITH cte AS (
SELECT * FROM (
SELECT [EntryId],
CAST(ROW_NUMBER() OVER (ORDER BY Date DESC) AS INT) AS RN_PARENT,
0 AS RN_CHILD
FROM Entries
WHERE [EntryDepthness] = 0 AND DiscussionWallId = @DiscussionWallId AND
UserId IN (
SELECT UserId FROM GroupStudentAssignments
WHERE [email protected] AND GroupId IN (SELECT GroupId FROM GroupDiscussionRegistrations WHERE [email protected])
)
) AS Main
WHERE ((RN_PARENT BETWEEN(@PageIndex -1) * (@PageSize) + 1 AND (((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1))
UNION ALL
SELECT e.[EntryId],
0 AS RN_PARENT,
CAST(ROW_NUMBER() OVER (ORDER BY e.Date DESC) AS INT) AS RN_CHILD
FROM Entries e
INNER JOIN cte v ON v.EntryId = e.ParentEntryId
WHERE e.EntryDepthness = 1
)
END
をスニッフィングパラメータにつながる可能性が... – mxix