SQL使用WITH子句使用多个结果

时间:2012-10-30 17:25:48

标签: tsql select

  

可能重复:
  why can’t I access my CTE after I used it once?

如何使用WITH?

获得多个结果
;WITH X AS
    (SELECT whatever)

, Y AS
    (SELECT whatever FROM X)

SELECT * FROM Y WHERE condition

SELECT Count(*) FROM X                <==== X doesn't work here

我不想 @@ RecordCount ,这会计算 Y ,而不是 X

1 个答案:

答案 0 :(得分:0)

在声明完成后,您无法访问CTE。

您可以将它包含在第一个结果集中:

SELECT Y.*, (SELECT COUNT(*) FROM X) as X_Count
FROM Y
WHERE condition

但是,这将在结果的每一行中包含该值。

你最好不要把X变成表变量而不是CTE。