Можно ли создать вложенный С пунктами для Общих Выражений Таблицы?

Попытайтесь Разыменовать Контейнеры STL: на этой странице: http://www.yolinux.com/TUTORIALS/GDB-Commands.html

168
задан spender 11 November 2012 в 20:45
поделиться

3 ответа

Несмотря на то, что они не являются строго вложенными, вы можете использовать общие табличные выражения для повторного использования предыдущих запросов в последующих.

Для этого форма запроса, которую вы ищете, будет

WITH x AS 
(
    SELECT * FROM MyTable
), 
y AS 
(
    SELECT * FROM x
)
SELECT * FROM y
276
ответ дан 23 November 2019 в 20:55
поделиться

. Вы можете сделать следующее, что называется рекурсивным запросом:

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
9
ответ дан 23 November 2019 в 20:55
поделиться

With не работает встроенным, но работает последовательно

;WITH A AS(
...
),
B AS(
...
)
SELECT *
FROM A
UNION ALL
SELECT *
FROM B

EDIT Исправлен синтаксис ...

Также обратите внимание на следующий пример

SQLFiddle DEMO

6
ответ дан 23 November 2019 в 20:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: