Funzione di substring di RedShift

Funzione di substring di RedShift
Sottostringa Redshift è la funzione utilizzata per estrarre la sottostringa richiesta dalla stringa esistente in base alla posizione di avvio e alla lunghezza della sottostringa. Lo scopo della funzione di sottostringa è restituire la parte specifica della stringa. Gli sviluppatori di database usano ampiamente questa funzione nelle query per ottenere una parte specifica della stringa. Questo blog descrive come la funzione di sottostringa può essere utilizzata in diversi modi per interrogare i dati dal cluster di spostamento verso il rosso.

Sintassi della funzione di sottostring

La sintassi di base e più comunemente usata per la funzione di sottostringa è la seguente, dove caratteri_string è la stringa principale da cui estrarremo i sottostringi. IL posizione di partenza è la posizione del primo carattere della sottostringa nella stringa principale e il lunghezza_of_characters è il numero di caratteri nella sottostringa:

1
substring (caratteri_string, starting_position, long_of_characters);

O

1
substring (caratteri_string da start_position [per numero_characters]);

Inoltre, è possibile estrarre una sottostringa di dati binari utilizzando la seguente sintassi, dove binary_expression sono i dati binari con tipo di dati varbyte. IL start_byte è la posizione del primo byte della sottostringa estratta dai dati binari e il Number_Bytes è il numero di byte che la sottostringa includerà.

Se non si specifica il Number_Bytes Nella funzione di substring, estraggerà la sottostringa a partire da start_byte alla fine dei dati binari.

1
substring (binary_expression, starting_byte, numero_bytes);


O

1
substring (binary_expression, starting_byte);

Utilizzando la funzione di substring

Finora abbiamo discusso della sintassi della funzione di sottostringa. In questa sezione, vedremo come questa funzione può essere utilizzata. Discutiamo alcuni esempi per comprendere il funzionamento della funzione di sottostringa:

La funzione di substring può essere utilizzata per interrogare i dati dal cluster di spostamento verso il rosso con le query selezionate. Questa sezione utilizzerà la funzione di sottostringa con la query selezionata.

La seguente domanda restituirà il file Spostamento verso il rosso Quando viene eseguito su Redshift:

1
Seleziona substring ('AWS Redshift', 5,8);

La tabella seguente mostra il conteggio dei caratteri in AWS Redshift corda. Lo spazio tra AWS e Redshift viene anche conteggiato come un personaggio.

UN W S R E D S H IO F T
1 2 3 4 5 6 7 8 9 10 11 12

La posizione di partenza è 5 e il personaggio al 5 ° conteggio è r. La lunghezza del personaggio è 8, il che significa che a partire dalla lettera, R, otto caratteri verranno restituiti.


Allo stesso modo, la seguente query tornerà AWS Se eseguito su Redshift. Il primo personaggio è un e il conteggio totale della sottostringa è 3; Ecco perché restituirà la sottostringa AWS.

1
Seleziona substring ('AWS Redshift', 1,3);

Se la Avviamento_position+lunghezza_of_characters è maggiore del numero totale di caratteri in caratteri_string, Il redshift restituirà il valore a partire dalla posizione iniziale alla fine della stringa.

Inoltre, se la lunghezza del carattere non è specificata, la funzione di sottostringa restituisce il valore a partire dalla posizione iniziale alla fine della stringa.

1
Seleziona substring ('AWS Redshift', 7,8);

O

1
Seleziona substring ('AWS Redshift', 7);

In entrambi i casi, l'output sarà Dhift, come mostrato nella figura seguente:


Se la posizione iniziale è zero o inferiore al valore zero (negativo), la funzione di sottostringa restituirà una sottostringa che inizia al primo carattere del caratteri_string con una lunghezza di Avviamento_position+lunghezza_of_characters-1.

1
Seleziona substring ('AWS Redshift',-3,7);

L'output sarà AWS, come mostrato nella figura seguente:


Se la Avviamento_position+lunghezza_of_characters-1 è inferiore o uguale a zero, la funzione di sottostringa restituirà una stringa vuota.

1
Seleziona substring ('AWS Redshift',-5,4);

L'output per questa query sarà vuoto, come mostrato nella figura seguente:


La seguente query creerà il Tabella AWS_redshift_substring Nel cluster di spostamento verso il rosso con gli attributi specificati:

1
2
3
4
5
6
7
Crea la tabella AWS_redshift_substring (
S_no int,
PersonName Varchar (255)
);

Inserire i dati nella tabella usando il metodo Insert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Inserisci i valori AWS_RedShift_Substring (1, 'MR. Dwayne Johnson');
Inserisci i valori AWS_RedShift_Substring (2, 'MR. Vin Diesel');
Inserisci i valori AWS_RedShift_Substring (3, 'MR. Will Smith');
Inserisci i valori AWS_RedShift_Substring (4, 'MR. Robert Downey Junior.');
Inserisci i valori AWS_RedShift_Substring (5, 'MR. Chris Hemsworth');
Inserisci nei valori AWS_RedShift_Substring (6, 'MR. Leonardo Dicaprio');
Inserisci i valori AWS_RedShift_Substring (7, "MR. Ryan Reynolds ');
Inserisci i valori AWS_RedShift_Substring (8, 'MR. Chris Pratt ');
Inserisci i valori AWS_redshift_substring (9, "MR. Hugh Jackman');
Inserisci i valori AWS_RedShift_Substring (10, 'MR. Mark Wahlberg');

Le query precedenti inseriranno dati nella tabella. Ora, selezionare i valori dalla tabella utilizzando la seguente query:

1
Seleziona * da AWS_redshift_substring;
s_no personale personale
1 Sig. Dwayne Johnson
2 Sig. vin Diesel
3 Sig. Will Smith
4 Sig. Robert Downey Junior.
5 Sig. Chris Hemsworth
6 Sig. Leonardo Dicaprio
7 Sig. Ryan Reynolds
8 Sig. Chris Pratt
9 Sig. Hugh Jackman
10 Sig. Mark Wahlberg

Ora, applica alcune funzioni di sottostringa in questa tabella. Estraiamo solo i nomi, trascurando il titolo. Per questo, eseguire la seguente domanda:

1
Seleziona *, substring (personale, 4) come new_name da AWS_RedShift_Substring;

Questa domanda restituirà le sottostringhe del personale personale colonna in una nuova colonna.

s_no personale personale nuovo nome
1 Sig. Dwayne Johnson Dwayne Johnson
2 Sig. vin Diesel vin Diesel
3 Sig. Will Smith Will Smith
4 Sig. Robert Downey Junior. Robert Downey Junior.
5 Sig. Chris Hemsworth Chris Hemsworth
6 Sig. Leonardo Dicaprio Leonardo Dicaprio
7 Sig. Ryan Reynolds Ryan Reynolds
8 Sig. Chris Pratt Chris Pratt
9 Sig. Hugh Jackman Hugh Jackman
10 Sig. Mark Wahlberg Mark Wahlberg


Allo stesso modo, possiamo ottenere sottostringhe di personale personale Utilizzando le seguenti query seleziona insieme alla funzione di sottostringa:

1
Seleziona *, sottostring (personale da 1 per 3) come titolo da AWS_RedShift_Substring;

Questo estraggerà l'unico titolo trascurando il nome completo.

S_no personale personale titolo
1 Sig. Dwayne Johnson Sig.
2 Sig. vin Diesel Sig.
3 Sig. Will Smith Sig.
4 Sig. Robert Downey Junior. Sig.
5 Sig. Chris Hemsworth Sig.
6 Sig. Leonardo Dicaprio Sig.
7 Sig. Ryan Reynolds Sig.
8 Sig. Chris Pratt Sig.
9 Sig. Hugh Jackman Sig.
10 Sig. Mark Wahlberg Sig.

Conclusione

Questo articolo ha discusso di come potremmo utilizzare la funzione di sottostringa per eseguire query nel cluster RedShift. L'estrazione di dati modificati dal database è una grande attività e può essere eseguita utilizzando la funzione di sottostringa. L'uso della funzione di substring può aiutare a evitare la modifica dei dati post query in quanto ottengono i dati modificati.