Wie teilt man eine durch Komma getrennte Zeichenfolge in Oracle
Wie teilt man eine durch Komma getrennte Zeichenfolge in Oracle mit SUBSTR
und INSTR
.
String '20.4,12.5,3.5,0.2,0.2'.
Ich habe versucht, über den code unten, aber ich bin nicht in der Lage, um den Wert nach dem 2. Komma.
SELECT substr('20.4,12.5,3.5,0.2,0.2',0,instr('20.4,12.5,3.5,0.2,0.2',',')-1)
value FROM dual -- 1. 20.4
zweiten Wert bin ich immer den gesamten string nach dem 2. Komma.
SELECT substr('20.4,12.5,3.5,0.2,0.2',instr('20.4,12.5,3.5,0.2,0.2',',')+1,instr('20.4,
12.5,3.5,0.2,0.2',',',2,2)-1) st FROM dual -- result : 12.5,3.5,
Möchte ich den Wert nach jedem Komma, wie
20.4
12.5
3,5 und so weiter.
- Siehe stackoverflow.com/questions/26878291/...
- Ich will, dass es ohne Verwendung von "REGEXP" - Funktion.
- Warum gehst du nicht wollen, benutzen Sie die regexp-Funktion?
- Ich bin immer das Ergebnis mit regex. Ich bin versucht, ob seine mögliche, um ohne regex.
- SELECT REGEXP_SUBSTR ('20.4 12.5 3.5 0.2 0.2', '(\S*)(\s)', 1, 2) FROM dual; nur haben die position zu ändern
Du musst angemeldet sein, um einen Kommentar abzugeben.
basierend auf https://blogs.oracle.com/aramamoo/how-to-split-comma-separated-string-and-pass-to-in-clause-of-select-statement :
Zunächst wird die form einer Abfrage, die teilt dieses Komma getrennte Zeichenfolge und gibt die einzelnen strings als Zeilen.
Obige Abfrage iteriert durch Komma getrennten Zeichenfolge, sucht das Komma (,) und dann teilt die Zeichenfolge, indem man das Komma als Trennzeichen. Es gibt die Zeichenkette als eine Zeile, Wann immer es trifft einen Begrenzer.