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

Tsql 使用WITH子句使用多个结果的SQL,tsql,select,Tsql,Select,可能重复: 如何使用获得多个结果 ;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在CTE所属的语句完成后,您无法访问CTE 但是,您可以将其包括在第

可能重复:

如何使用获得多个结果

;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

在CTE所属的语句完成后,您无法访问CTE

但是,您可以将其包括在第一个结果集中:

SELECT Y.*, (SELECT COUNT(*) FROM X) as X_Count
FROM Y
WHERE condition
但是,这将在结果的每一行中包含该值

您最好将X设置为表变量,而不是CTE