Попытайтесь Разыменовать Контейнеры STL: на этой странице: http://www.yolinux.com/TUTORIALS/GDB-Commands.html
Несмотря на то, что они не являются строго вложенными, вы можете использовать общие табличные выражения для повторного использования предыдущих запросов в последующих.
Для этого форма запроса, которую вы ищете, будет
WITH x AS
(
SELECT * FROM MyTable
),
y AS
(
SELECT * FROM x
)
SELECT * FROM y
. Вы можете сделать следующее, что называется рекурсивным запросом:
WITH y
AS
(
SELECT x, y, z
FROM MyTable
WHERE [base_condition]
UNION ALL
SELECT x, y, z
FROM MyTable M
INNER JOIN y ON M.[some_other_condition] = y.[some_other_condition]
)
SELECT *
FROM y
Вы эта функция может не понадобиться. Я сделал следующее, чтобы лучше организовать свои запросы:
WITH y
AS
(
SELECT *
FROM MyTable
WHERE [base_condition]
),
x
AS
(
SELECT *
FROM y
WHERE [something_else]
)
SELECT *
FROM x
With не работает встроенным, но работает последовательно
;WITH A AS(
...
),
B AS(
...
)
SELECT *
FROM A
UNION ALL
SELECT *
FROM B
EDIT Исправлен синтаксис ...
Также обратите внимание на следующий пример