如何使用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
答案 0 :(得分:0)
在声明完成后,您无法访问CTE。
您可以将它包含在第一个结果集中:
SELECT Y.*, (SELECT COUNT(*) FROM X) as X_Count
FROM Y
WHERE condition
但是,这将在结果的每一行中包含该值。
你最好不要把X变成表变量而不是CTE。