[英]Multiple CTE Queries, assign single column value to local variable
這是我的SQL查詢。 如何將Count_CTE.TotalRecords結果分配給本地分配的變量? 任何人都可以嗎?
DECLARE @Totalrecords Bigint =0;
;WITH Main_Query_CTE AS(
SELECT
U.Id,
U.Username,
P.Id as ProfileId,
P.Firstname,
P.Lastname
FROM [Dbo].[User] U
INNER JOIN [Profile] P
ON U.Id = P.Userid
WHERE AND U.[Status] <>0
),
Count_CTE AS ( SELECT COUNT(*) as TotalRecords FROM Main_Query_CTE )
SELECT * FROM Main_Query_CTE ,Count_CTE
ORDER BY Main_Query_CTE.Id
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY
正如Gordan所說,您不能分配變量並在同一select語句中返回select。 如果需要分配局部變量,最好的選擇是將數據放入臨時表中,然后從中進行選擇。 不過,您的問題尚不清楚-不確定您選擇的最終目標是什么。
DECLARE @Totalrecords Bigint =0;
SELECT
U.Id,
U.Username,
P.Id as ProfileId,
P.Firstname,
P.Lastname
into #temp
FROM [Dbo].[User] U
INNER JOIN [Profile] P
ON U.Id = P.Userid
WHERE AND U.[Status] <> 0
select @Totalrecords = COALESCE(COUNT(*),0) FROM #temp;
SELECT *
FROM #temp
ORDER BY id
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.