Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#9

Re: Alle Werte zwischen zwei ZAhlen mit SQL ausgeben

  Alt 16. Okt 2008, 15:24
Hallo,

einen hab' ich noch, aber bitte dafür nicht hauen:

SQL-Code:
select * from (
select
'SELECT l FROM (SELECT LEVEL l FROM dual '
||'CONNECT BY LEVEL <= ('
||'SELECT spalte_b AS endIndex FROM test WHERE spalte_a = '||spalte_a
||')) WHERE l >= ('
||'SELECT spalte_a AS startIndex FROM test WHERE spalte_a = '||spalte_a ||')'||chr(10)
||'union allas Spalte
from test
order by spalte_a
)
union all
select 'select 0 from dualfrom dual
Man nehme das SQL, führe es aus, nehme das Ergebnis und führe es aus.

Nagut, was passiert hier:
Es wird mit SQL ein SQL-Statement generiert, das für jede Zeile der Tabelle eine Select ... Level ... generiert, die per union all miteinander verbunden werden. Dadurch ist am Ende ein union all zuviel, das mit einem select 0 from dual "neutralisiert" wird.
  Mit Zitat antworten Zitat