0
Ich versuche, ein rekursives CTE in der from-Klausel zu verwenden. Dieser CTE arbeitet von selbst:CTE in der DB2-Unterabfrage
with i (i) as (
values (1)
union all
select i + 1 from i
where i < 3
)
select * from i;
I
-------------
1
2
3
Aber wenn ich es in der from
Klausel versuchen:
select *
from (
with i (i) as (
values (1)
union all
select i + 1 from i
where i < 3
)
select * from i
) i;
ERRO próximo da linha 1:
SQL0104N An unexpected token "as" was found following "*
from (
with i (i)". Expected tokens may include: "JOIN".
Ein ähnliches Konstrukt funktioniert in Postgresql. Was vermisse ich?
Warum brauchen Sie einen CTE in der 'FROM' Klausel? Sieht für mich wie ein X-Y-Problem aus. Wie Sie sehen, ist es in DB2 syntaktisch falsch (und semantisch unnötig). – mustaccio
@mustaccio Es könnte auch eine korrelierte Unterabfrage in der Auswahlliste sein, aber ich dachte, es wäre sauberer in einem lateralen Join. Ich kann die korrelierte Unterabfrage jetzt nicht testen. Ist es legal? –