У меня был очень простой вопрос: разрешает ли oracle несколько "WITH AS" в одном операторе sql.
Пример:
WITH abc AS( select ......)
WITH XYZ AS(select ....) /*This one uses "abc" multiple times*/
Select .... /*using XYZ multiple times*/
Я могу заставить запрос работать, повторяя один и тот же запрос несколько раз, но я не хочу этого делать и использую «С КАК». Это кажется простым требованием, но Oracle не позволяет мне:
ORA-00928: отсутствует ключевое слово SELECT
abc
иxyz
подзапросов? Мне нужно получить результат первого подзапроса и использовать его во втором подзапросе.правильный синтаксис -
источник
Да, ты можешь...
Следуйте порядку, в котором он должен быть инициализирован в Common Table Expressions
источник
Адитья или другие, можете ли вы присоединиться или сопоставить t2 с t1 в вашем примере, то есть переведенным на мой код,
Мне неясно, поддерживается ли для присоединения только WHERE или какой подход к присоединению поддерживается во втором объекте WITH. В некоторых примерах WHERE A = B находится внизу в теле выбора "под" предложениями WITH.
Ошибка, которую я получаю после этих объявлений WITH, заключается в том, что идентификаторы (имена полей) в B не распознаются в теле остальной части SQL. Таким образом, синтаксис WITH, похоже, работает нормально, но не может получить доступ к результатам из t2.
источник