Использование WITH в подзапросе (MS SQL)

Я пытаюсь выполнить некоторую рекурсию внутри подзапроса, но, похоже, я не могу использовать WITH Я пропустил что-то или, возможно, обходной путь?

 WHERE swn.stocknode_id in ( WITH Hierachy(stocknode_id, short_desc, PARENTNODE_ID, level) AS ( SELECT a.stocknode_id, 0 AS level FROM stock_website_node AS a WHERE a.short_desc = 'XXXXXXXX' AND a.PARENTNODE_ID = 0 UNION ALL SELECT a.stocknode_id, ch.level + 1 FROM stock_website_node AS a INNER JOIN Hierachy ch ON a.PARENTNODE_ID = ch.stocknode_id ) SELECT stocknode_id FROM Hierachy WHERE level > 0 ) 

Меня встретили:

Incorrect syntax near the keyword 'WITH'.

Общие выражения таблицы должны быть на верхнем уровне.

Вам нужно вывести CTE из WHERE и просто повторить файл stocknode_id в WHERE следующим образом:

 WHERE swn.stocknode_id in (SELECT stocknode_id FROM Hierachy WHERE level > 0) 
 ;WITH Hierachy(stocknode_id, short_desc, PARENTNODE_ID, level) AS ( SELECT a.stocknode_id, 0 AS level FROM stock_website_node AS a WHERE a.short_desc = 'XXXXXXXX' AND a.PARENTNODE_ID = 0 UNION ALL SELECT a.stocknode_id, ch.level + 1 FROM stock_website_node AS a INNER JOIN Hierachy ch ON a.PARENTNODE_ID = ch.stocknode_id ) SELECT * FROM swn -- BIGQUERY... WHERE swn.stocknode_id in ( SELECT stocknode_id FROM Hierachy WHERE level > 0 ) 
  • Что мне делать, когда я перехожу через maxrecursion с помощью CTE?
  • Использование рекурсивного CTE с GroupBy
  • Пройти родительское / дочернее дерево с рекурсивным CTE?
  • Создание перестановки через рекурсивный CTE на SQL-сервере?
  • Контролирование порядка братьев по рекурсивному CTE?
  • Порядок рекурсии (SQL Server CTE)
  • SQL Server: рекурсивный оператор обновления
  • Рекурсивная сумма в иерархии parent-child T-SQL
  • SQL Server: как выполнить UPDATE из рекурсивной функции?
  • Запрос сервера Sql для пути дерева к одному элементу
  • Рекурсивный метод SQL для добавления в auto increment
  • Interesting Posts

    Как я могу автоматизировать мой рабочий процесс передачи данных?

    Как удалить или усечь таблицу в SQL Server?

    Использование имен столбцов, хранящихся в полях, для извлечения данных из другой таблицы

    Цитировать значения по умолчанию в команде create table SQL Server

    Индекс SQL Drop для разных баз данных

    Как его решить, когда есть несколько экземпляров SQL Server, но может подключаться только к одному?

    Ввод строк на страницу в таблице кучи Не соответствует размеру страницы 8060 байт

    sql – синтаксис самодельной таблицы

    SQL Server: отдельное имя и фамилия и удаление среднего начального значения в два столбца

    SQL Server 2005 DateTime (только возврат hh: mm)

    Поиск записей, созданных в течение 24 часов (не особенно последних 24 часов)

    Первая модель восстановления базы данных Entity Framework Code

    Отслеживание просмотров на SQL Server

    Вывод SQL Server 2008 CONVERT в VIEW делает тип данных NULL в определении столбца

    Синтаксис SQL для обновления моей таблицы Date Dimension с кодами календарного года

    Давайте будем гением компьютера.