Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SPLIT_ PART fonction
Divise une chaîne sur le délimiteur spécifié et renvoie la partie à la position spécifiée.
Syntaxe
SPLIT_PART(string, delimiter, position)
Arguments
- string
-
Colonne de chaîne, expression ou littéral de chaîne à fractionner. La chaîne peut être CHAR ouVARCHAR.
- delimiter
-
Chaîne de délimiteur indiquant les sections de la chaîne d’entrée.
Si delimiter est un littéral, mettez-le entre guillemets simples.
- position
-
Position de la partie de chaîne à renvoyer (à partir de 1). Doit être un nombre entier supérieur à 0. Si la position est supérieure au nombre de portions de chaîne, SPLIT _ PART renvoie une chaîne vide. Si délimiteur est introuvable dans chaîne, alors la valeur renvoyée contient le contenu de la partie spécifiée, qui pourrait être la chaîne entière ou une valeur vide.
Type de retour
Une VARCHAR chaîne CHAR ou, identique au paramètre de chaîne.
Exemples
L’exemple suivant fractionne un littéral de chaîne en différentes parties en utilisant le délimiteur $
et renvoie la seconde partie.
select split_part('abc$def$ghi','$',2)
split_part ---------- def
L’exemple suivant fractionne un littéral de chaîne en différentes parties en utilisant le délimiteur $
. Il renvoie une chaîne vide, car la partie 4
est introuvable.
select split_part('abc$def$ghi','$',4)
split_part ----------
L’exemple suivant fractionne un littéral de chaîne en différentes parties en utilisant le délimiteur #
. Il renvoie la chaîne entière, qui correspond à la première partie, car le délimiteur est introuvable.
select split_part('abc$def$ghi','#',1)
split_part ------------ abc$def$ghi
L'exemple suivant divise le champ d'horodatage LISTTIME en composantes année, mois et jour.
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
L'exemple suivant sélectionne le champ d'LISTTIMEhorodatage et le divise sur le '-'
caractère pour obtenir le mois (la deuxième partie de la LISTTIME chaîne), puis compte le nombre d'entrées pour chaque mois :
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