我想設置一個CTE內部的變量值,如下所示:SQL:選擇在設置變量CTE
DECLARE @var INT;
WITH cte AS
(
SELECT @var = column FROM ...
)
,但我得到了以下錯誤:Incorrect syntax near '='
這是不可能的要麼做,要麼在CTE內執行語法更改?
我想設置一個CTE內部的變量值,如下所示:SQL:選擇在設置變量CTE
DECLARE @var INT;
WITH cte AS
(
SELECT @var = column FROM ...
)
,但我得到了以下錯誤:Incorrect syntax near '='
這是不可能的要麼做,要麼在CTE內執行語法更改?
不完全是價值分配給一個變量,但也許你可以做這樣的事情....
DECLARE @T TABLE (ID INT, VALUE INT)
INSERT INTO @T VALUES (1,100),(2,200),(3,300),(4,400),(5,500)
;WITH Variable (A) --<-- The value you wanted to store in a variable
AS
(
SELECT AVG(VALUE)
FROM @T
),
CTE (ID , Value) --<-- Actual CTE where you wanted to use the value
AS
(
SELECT *
FROM @T
WHERE VALUE > (SELECT A --<-- Use that value here
FROM Variable)
)
SELECT *
FROM CTE
AFAIK,你不能在CTE內設置一個變量,但您可以用的的_result_ CTE:'用CTE(選擇42作爲Lisa)選擇@Var =來自CTE的Lisa。 – HABO