Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Teilt eine Zeichenfolge am angegebenen Trennzeichen und gibt den Teil an der angegebenen Position zurück.
Syntax
SPLIT_PART(string, delimiter, position)
Argumente
- string
-
Eine Zeichenfolgenspalte, ein Ausdruck oder ein Zeichenfolgenliteral, die/der/das geteilt werden soll. Die Zeichenfolge kann CHAR oder VARCHAR sein.
- delimiter
-
Die Trennzeichen-Zeichenfolge, die Abschnitte des Eingabe-string angibt.
Wenn delimiter ein Literal ist, schließen Sie es in einfache Anführungszeichen ein.
- position
-
Position des string-Abschnitts, der zurückgegeben werden soll (gezählt ab 1). Es muss sich um eine Ganzzahl größer als 0 handeln. Wenn position größer als die Anzahl der Zeichenfolgenabschnitte ist, gibt SPLIT_PART eine leere Zeichenfolge zurück. Wenn delimiter nicht in string gefunden wird, enthält der zurückgegebene Wert den Inhalt des angegebenen Teils. Dabei kann es sich um die gesamte Zeichenfolge oder einen leeren Wert handeln.
Rückgabetyp
Eine CHAR- oder VARCHAR-Zeichenfolge, identisch mit dem Parameter string.
Beispiele
Im folgenden Beispiel wird ein Zeichenfolgenliteral mithilfe des Trennzeichens $
in Teile aufgeteilt und der zweite Teil zurückgegeben.
select split_part('abc$def$ghi','$',2)
split_part
----------
def
Im folgenden Beispiel wird ein Zeichenfolgenliteral mithilfe des Trennzeichens $
in Teile aufgeteilt. Es wird eine leere Zeichenfolge zurückgegeben, da der Teil 4
nicht gefunden wurde.
select split_part('abc$def$ghi','$',4)
split_part
----------
Im folgenden Beispiel wird ein Zeichenfolgenliteral mithilfe des Trennzeichens #
in Teile aufgeteilt. Da das Trennzeichen nicht gefunden wurde, wird die gesamte Zeichenfolge zurückgegeben, wobei es sich um den ersten Teil handelt.
select split_part('abc$def$ghi','#',1)
split_part
------------
abc$def$ghi
Im folgenden Beispiel wird das Zeitstempelfeld LISTTIME in die Komponenten Jahr, Monat und Datum aufgeteilt.
select listtime, split_part(listtime,'-',1) as year,
split_part(listtime,'-',2) as month,
split_part(split_part(listtime,'-',3),' ',1) as day
from listing limit 5;
listtime | year | month | day
---------------------+------+-------+------
2008-03-05 12:25:29 | 2008 | 03 | 05
2008-09-09 08:03:36 | 2008 | 09 | 09
2008-09-26 05:43:12 | 2008 | 09 | 26
2008-10-04 02:00:30 | 2008 | 10 | 04
2008-01-06 08:33:11 | 2008 | 01 | 06
Im folgenden Beispiel wird das Zeitstempelfeld LISTTIME ausgewählt und am Zeichen '-'
getrennt, um den Monat zu erhalten (den zweiten Teil der Zeichenfolge LISTTIME). Anschließend wird die Zahl der Einträge für jeden Monat gezählt:
select split_part(listtime,'-',2) as month, count(*)
from listing
group by split_part(listtime,'-',2)
order by 1, 2;
month | count
-------+-------
01 | 18543
02 | 16620
03 | 17594
04 | 16822
05 | 17618
06 | 17158
07 | 17626
08 | 17881
09 | 17378
10 | 17756
11 | 12912
12 | 4589