Ich versuche, einige Ergebnisse wie folgt zu erhalten:Postgres - Wählen Sie rownumber ohne Tisch aber Daten aus einer Funktion
rownumber | value
1 | a
2 | b
3 | c
Ohne Tabellen Ich bin so etwas wie dies zu tun:
WITH RECURSIVE t(rownumber, value) AS (
select 1, regexp_split_to_table('a, b, c', ',')
UNION ALL
SELECT rownumber+1, regexp_split_to_table('a, b, c',',') FROM t
)
SELECT * FROM t limit (select count(*) from regexp_split_to_table('a, b, c', ','));
Aber die Ergebnisse sind nicht wie erwartet.
Der Grund, warum ich das tue, ist, weil der Wert 'a, b, c' eine Variable sein sollte.
In Oracle sucht der SQL wie folgt aus:
SELECT value FROM (
SELECT ROWNUM AS rownumber, trim(REGEXP_SUBSTR('a, b, c','[^,]+', 1, LEVEL)) AS value
FROM DUAL CONNECT BY trim(REGEXP_SUBSTR('a, b, c', '[^,]+', 1, LEVEL)) IS NOT NULL
)
und es funktioniert.
Was mache ich falsch in Postgresql?
Vielen Dank, das hat für mich funktioniert! Ich habe gerade einen outter select hinzugefügt, weil ich nach der rownumber aus der Tabelle filtern musste wie '' value from ([Ihre untere Abfrage]) als Tabelle, wo rownumber = [my_number] ' –
Keine Sorge, Kumpel. Schön, dass Sie alle sortiert sind =). – kaisquared