Miałem bardzo proste pytanie: czy Oracle zezwala na wielokrotne wyrażenie „WITH AS” w jednej instrukcji sql.
Przykład:
WITH abc AS( select ......)
WITH XYZ AS(select ....) /*This one uses "abc" multiple times*/
Select .... /*using XYZ multiple times*/
Mogę sprawić, by zapytanie działało, powtarzając to samo zapytanie wiele razy, ale nie chcę tego robić, i wykorzystuję opcję „Z JAKĄ”. Wydaje się, że jest to prosty wymóg, ale wyrocznia nie pozwala mi:
ORA-00928: brak słowa kluczowego SELECT
abc
ixyz
? Muszę uzyskać wynik pierwszego podzapytania i użyć go w drugim podzapytaniu.poprawna składnia to -
źródło
Tak, możesz...
Postępuj zgodnie z kolejnością, w jakiej powinien zostać zainicjowany w Common Table Expressions
źródło
Aditya lub inni, czy możesz dołączyć lub dopasować t2 z t1 w twoim przykładzie, tj. Przetłumaczone na mój kod,
Nie jestem pewien, czy tylko GDZIE jest obsługiwane w przypadku łączenia, czy też jakie podejście do łączenia jest obsługiwane w ramach drugiego podmiotu WITH. Niektóre z przykładów mają WHERE A = B w treści zaznaczenia „poniżej” klauzul WITH.
Błąd, który otrzymuję po tych deklaracjach Z jest taki, że identyfikatory (nazwy pól) w B nie są rozpoznawane, w treści reszty kodu SQL. Tak więc składnia WITH wydaje się działać poprawnie, ale nie ma dostępu do wyników z t2.
źródło