Join- und split-Funktionen mit SQL

Eine häufige Aufgabe beim Abrufen von Daten aus einer Datenbank besteht darin, einen von einer Abfrage ausgegebenen Satz von Werten als kommagetrennte Liste zu formatieren. Fast ebenso häufig ist genau die entgegengesetzte Aufgabe – eine kommagetrennte Liste von Werten in einem einzelnen String als Tabelle von Werten zu benutzen.

Viele Scriptsprachen wie Perl und Python bieten Funktionen, die mit ihren sprachspezifischen Listen von Werten genau dies machen. Es überrascht daher, dass diese Funktionalität bislang nicht standardmäßig in den SQL-Funktionen enthalten ist. Es gibt zwar ziemlich hässliche Hilfskonstruktionen, die komplexe Deklarationen mit MAX und DECODE enthalten, doch liefern solche Lösungen normalerweise nur einen begrenzten Satz von Werten. Mit einigen der neuen Features von Oracle9i und neueren Versionen kann man diese Funktionen selbst erstellen.

Hier soll eine „join“-Funktion verwendet werden, um eine Abfrage zu erstellen, die eine einzelne Spalte und ein Trennzeichen ausgibt, worauf ein einfacher String entsteht, der eine Liste der entsprechenden Werte, vom Trennzeichen getrennt, enthält. Die Abfrage kann der Funktion als REF CURSOR unter Verwendung der neuen SQL CURSOR-Funktion übergeben werden. Das Trennzeichen sollte standardmäßig ein Komma sein, da dies das am häufigsten verwendete Trennzeichen ist. Die Syntax sollte also wie folgt aussehen:

Realisiert wird diese Funktion mithilfe des folgenden Codes:

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

2 Tagen ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

3 Tagen ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

4 Tagen ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

4 Tagen ago

Cyberabwehr: Mindestens zwei kritische Vorfälle pro Tag

Davon entfällt ein Viertel auf staatliche Einrichtungen und 12 Prozent auf Industrieunternehmen.

5 Tagen ago

Tunnelvision: Exploit umgeht VPN-Verschlüsselung

Forscher umgehen die Verschlüsselung und erhalten Zugriff auf VPN-Datenverkehr im Klartext. Für ihren Angriff benötigen…

5 Tagen ago