不能多次使用递归表(WITH子句)

时间:2014-03-30 01:29:59

标签: sql sql-server

WITH sciezka AS
(
    (something)
)
SELECT TOP 1 @ciag= miasta FROM sciezka WHERE ID_konca=@koniec;
SELECT TOP 1 @ciag2= odleglosci FROM sciezka WHERE ID_konca=@koniec;

它表示'sciezka'和'odleglosci'在第二个命令中是无效的名称,但它在第一个命令中有效。为什么我不能多次使用表'sciezka'?

1 个答案:

答案 0 :(得分:2)

CTE(在with中定义)仅附加到一个select。您可以使用临时表或表变量。

在您的情况下,您可以这样做:

WITH sciezka AS
(
    (something)
)
SELECT TOP 1 @ciag= miasta, @ciag2= odleglosci 
FROM sciezka
WHERE ID_konca=@koniec;