Yanıtlar:
CTE'den sonra yalnızca bir ifadeniz olabilir. Bununla birlikte, bir öncekine göre sonraki CTE'leri tanımlayabilirsiniz:
WITH t1 AS (
SELECT a, b, c
FROM table1
)
, t2 AS (
SELECT b
FROM t1
WHERE a = 5
)
SELECT *
FROM t2;
Satırları saymaya ve aynı sonuç kümesinden bir ref imleci doldurmaya çalıştığınız göz önüne alındığında, aşağıdakilerden birini yapmak daha uygun olabilir:
Son olarak, sorgu yeterince basitse, sayım için bir kez ve imleç için tekrar yazın. Basitlik ve okunabilirlik bu durumda DRY prensibini gölgede bırakır .
Hayır, bir CTE veya with
yan tümcesi tek bir ifade kapsamında tanımlanır
Bazen tek bir deyimle beklediğinizden daha fazlasını yapabilirsiniz, örneğin:
with w as (select v from t3)
insert all into t1(v) values(v)
into t2(v) values(v)
select v from w;
Geçici sonuç kümelerini (gerekirse) depolamanın 'normal' Oracle yolu bir GTT:
GLOBAL TEMPORARY
tablosu kullanmaktır .