Oracle select from dual mit mehreren Zeilen und Spalten
Ich müssen sich gegen eine dynamische Liste von zahlen, rufe ich aus meinem Programm dynamisch. Die Anzahl der Zeilen ist nicht festgelegt, noch sind die zahlen, die verwendet werden.
Ich bin nicht der Suche nach einem besseren Weg, dies zu erreichen als mit der folgenden (für meine Zwecke, eine temporäre Tabelle ist nicht hilfreich):
select 111 as col1, 322 as col2 from dual
union all
select 3 as col1, 14 as col2 from dual
union all
select 56 as col1, 676 as col2 from dual;
Gibt es einen besseren Weg, dies zu tun? Ich sehe, dass es eine connect by-Anweisung kann mehrere Zeilen zurückgeben, aber ich bin nicht zu sehen, eine Möglichkeit, mehrere Zeilen und Spalten.
es es wirklich das Muster {1,2},{3,4},{5,6}?
Nein, es ist eine Reihe von zahlen, die ich bekommen programmgesteuert. Ich weiß nicht, was die zahlen vorher.
Sie bauen konnte eine PL/SQL-Sammlung und wählen Sie dann aus
Wie wird diese Abfrage verwendet werden? Es in der Regel nicht sinnvoll, eine Abfrage liefert, dass eine unbekannte Anzahl von Spalten, so ich nehme an, Sie haben einige ungewöhnliche benötigen hier.
Zeilen, sorry. Frage bearbeitet.
Nein, es ist eine Reihe von zahlen, die ich bekommen programmgesteuert. Ich weiß nicht, was die zahlen vorher.
Sie bauen konnte eine PL/SQL-Sammlung und wählen Sie dann aus
table(collection)
. Sorry ich habe keine Zeit zu schreiben, ein Beispiel. docs.oracle.com/database/121/SQLRF/...Wie wird diese Abfrage verwendet werden? Es in der Regel nicht sinnvoll, eine Abfrage liefert, dass eine unbekannte Anzahl von Spalten, so ich nehme an, Sie haben einige ungewöhnliche benötigen hier.
Zeilen, sorry. Frage bearbeitet.
InformationsquelleAutor Jeremy | 2015-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die decode-und connect by level:
InformationsquelleAutor B. Khan
Können Sie die
CONNECT BY
hier mit ein wenig Mathematik:Geben Sie Ihrem Beispiel drei Zeilen. Passen Sie die
LEVEL <= ...
Wert um mehr Zeilen.Wenn Sie bekommen die Nummern während eines PL/SQL-Prozedur, die Sie zurückgeben könnte über eine Pipeline-Funktion. Es ist ein Beispiel hier, und Sie finden viele andere durch Googeln. Wenn Sie immer die Werte auf eine andere Weise dann für was es Wert ist ich würde es tun, genau so, wie du das gemacht hast in deiner Frage. Ich weiß, es fühlt sich falsch an, aber es wird funktionieren 🙂
InformationsquelleAutor Ed Gibbs