我必须对WITH查询进行查询,例如
; WITH #table1
(
SELECT id, x from ... WHERE....
UNION ALL
SELECT id, x from ... WHERE...
)
WITH #table2
(
SELECT DISTINCT tbl_x.*,ROW_NUMBER() OVER (order by id) as RowNumber
WHERE id in ( SELECT id from #table1)
)
SELECT * FROM #table2 WHERE RowNumber > ... and ...
所以我必须在WITH上使用WITH,然后在第二个WITH上使用SELECT,我该怎么做?
最佳答案
您可以在 WITH
关键字后定义多个 CTE,用逗号分隔每个 CTE。
WITH T1 AS
(
SELECT id, x from ... WHERE....
UNION ALL
SELECT id, x from ... WHERE...
)
, T2 AS
(
SELECT DISTINCT tbl_x.*, ROW_NUMBER() OVER (order by id) as RowNumber
WHERE id in ( SELECT id from T1 )
)
SELECT * FROM T2 WHERE RowNumber > ... and ...
https://web.archive.org/web/20210927200924/http://www.4guysfromrolla.com/webtech/071906-1.shtml
关于tsql - t-sql 与 与 与,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142189/