Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione SPLIT_PART
Divide una stringa sul delimitatore specificato e restituisce la parte nella posizione specificata.
Sintassi
SPLIT_PART(string, delimiter, position)
Arguments (Argomenti)
- stringa
-
Una stringa, una colonna, un'espressione o una stringa letterale da dividere. La stringa può essere CHAR o VARCHAR.
- delimiter
-
La stringa del delimitatore che indica le sezioni della stringa di input.
Se delimiter è un letterale, racchiuderlo tra virgolette singole.
- posizione
-
Posizione della porzione di stringa da restituire (contando da 1). Deve essere un integer superiore a 0. Se posizione è maggiore del numero di porzioni di stringa, SPLIT_PART restituisce una stringa vuota. Se il delimitatore non si trova nella stringa, il valore restituito contiene i contenuti della parte specificata, che possono essere l'intera stringa o un valore vuoto.
Tipo restituito
Una stringa CHAR o VARCHAR, uguale al parametro di stringa.
Esempi
L'esempio seguente divide una stringa letterale in parti utilizzando il delimitatore $ e restituisce la seconda parte.
select split_part('abc$def$ghi','$',2)split_part ---------- def
L'esempio seguente divide una stringa letterale in parti utilizzando il delimitatore $. Restituisce una stringa vuota perché la parte 4 non viene trovata.
select split_part('abc$def$ghi','$',4)split_part ----------
L'esempio seguente divide una stringa letterale in parti utilizzando il delimitatore #. Restituisce l'intera stringa, che è la prima parte, perché il delimitatore non è stato trovato.
select split_part('abc$def$ghi','#',1)split_part ------------ abc$def$ghi
L'esempio seguente divide il campo timestamp LISTTIME in componenti anno, mese e data.
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'esempio seguente seleziona il campo timestamp LISTTIME e lo divide sul carattere '-' per ottenere il mese (la seconda parte della stringa LISTTIME), quindi conta il numero di voci per ogni mese:
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