10085998: Eine SQL-Anweisung

Beitrag lesen

Hi!

Gibt es eine sql-Anweisung mit der ich die Werte eines Arrays in einer Spalte einer Tabelle darstellen kann?
Sowas ähnliches wie Select * from (1, 4,4568), was aber auch funktionieren sollte.

So eine Funktion ist mir nicht bekannt (jedenfalls nicht in generellem SQL). Das würde bedeuten, dass das DBMS selbständig eine temporäre Tabelle erzeugen müsste, die es dann befragen kann. Natürlich kannst du dir eine Stored Procedure erstellen, die das kann, wobei mir nicht bekannt ist, dass es die Möglichkeit gäbe, eine variable Anzahl an Parametern zu übergeben. Der Parameter müsste dann ein String sein, den du dir selbst auseinanderpflücken müsstest.

Lo!

Nein, nicht unbedingt. Die DBMS kann sich eigentlich eine selbständig erstellte temporäre Tabellen sparen. So eine sql-Anweisung, ich nenne sie mal ConvertArrayToColumn, müsste sich intern z.B. einfach auflösen in z.B.:

SELECT ConvertArrayToColumn(array(1, 4, 4568)) as test.test1

wird intern in der DBMS umgeschrieben und ausgeführt als z.B.:

SELECT test1
FROM (
  SELECT 1 AS test1
  UNION
  SELECT 4 AS test1
  UNION
  SELECT 4568 AS test1
) as test

Also mir wäre ein solche sql-Anweisung schon einige Male recht hilfreich gewesen. Ich denke, dies wäre schon eine recht praktische Funktion ohne jetzt selbst ein Stored Procedure schreiben zu müssen, welches in Oracle, SQL-Server und in den neueren mysql-Versionen jeweils komplett anders aussieht. Ältere Versionen von mysql kennen keine Stored Procedures.

viele Grüße