T-sql WITH WITH WITH
Мне нужно сделать запрос на запрос 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, как я могу это сделать?
Ответы
Ответ 1
Вы можете определить несколько CTE после ключевого слова WITH
, разделив каждый 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 ...
http://www.4guysfromrolla.com/webtech/071906-1.shtml