Sortieren, Trennzeichen getrennte Werte in einem string mit (Oracle), SQL

Sagen, Sie haben

select '9|2|6|7|5' as somedata from dual

Gibt es eine Möglichkeit, wo ich etwas tun könnte wie:

select
    in_string_sort('|', a.somedata)
from
    (select '9|2|6|7|5' as somedata from dual) a

So, das Ergebnis wäre '2|5|6|7|9'?

Ich weiß, könnte ich eine Funktion, um das zu bekommen, aber das ist so basic-ich Frage mich, ob Oracle hätten einige built-in-Funktion für diese Art der Sache.

[BEARBEITEN] vergaß zu erwähnen: dies würde in der Oracle 10gR2.

  • Diese Funktion ist nicht "basic", weil es nicht benötigt wird. Die Speicherung von getrennten Daten in einer einzelnen Spalte ist eine schlechte Idee und die falsche datamodel
  • Naja.. ich denke, es ist sicher zu sagen, dass die Dinge ist sicher ein Grundbedürfnis. Diese könnte man zu sehr spezifischen, aber das ich die Idee scheint fair. Auch dies hat nichts zu tun mit Speicher-Problemen - ist nicht über aggregierte strings, das ist ein Recht häufiges Problem, da draußen in der Google... ich bin auf der Suche nach diesem cos in meinem Fall eine ein bisschen zu viel Schmerz, zu aggregieren bereits bestellt.
  • Aggregierte Saiten wie die deine gegen die elementaren Prinzipien für gutes Datenbankdesign: Normalisierung. Wenn Sie gewählt hatte, um zu speichern diese zahlen, die als Zeilen, die Lösung ist so einfach wie mit ORDER BY
  • Ernsthaft... das ist nicht der Punkt dieser Frage.
InformationsquelleAutor filippo | 2011-10-18
Schreibe einen Kommentar