Variabile Array SQL

Variabile Array SQL

Questo articolo imparerà come creare e utilizzare i tipi di array in SQL standard. È bene notare che sebbene gli array facciano parte di SQL standard, i database come MySQL non supportano in modo nativo array.

Cos'è un array?

Un array si riferisce a una raccolta di un elenco ordinato di articoli. Gli array sono molto utili e potenti. Imparare a lavorare con un array può aiutare a migliorare le prestazioni e fornire complesse tecniche di manipolazione dei dati.

Nei motori di database come BigQuery e PostgreSQL, un array è un tipo integrato che può essere utilizzato ovunque nel database.

Tuttavia, a differenza di PostgreSQL, BigQuery ti impedisce di creare array multidimensionali.

SQL Crea array

Il modo più semplice per creare un array è usare il suo formato letterale. Un esempio è come mostrato:

SELEZIONARE
[1,
2,
3,
4,
5] come my_array;

Il codice sopra dovrebbe creare un array chiamato my_array con gli elementi all'interno delle staffe quadrate.

Un output di esempio è come mostrato:

my_array
"[1,2,3,4,5]"

Il secondo metodo che puoi utilizzare per creare un array è la funzione Generate_array. Questa funzione è disponibile solo in BigQuery.

Il codice seguente mostra come utilizzare la funzione Generate_array per generare un array.

SELEZIONARE
Generate_array (1, 5) come my_array;

Il codice sopra genera un array di elementi da 1 a 5. L'output risultante è come mostrato:

my_array
"[1,2,3,4,5]"

La funzione Generate_Array segue la sintassi come mostrato di seguito:

Generate_array (start_expression, end_expression [, step_expression])

È possibile utilizzare STEP_Expression per impostare la dimensione del passaggio per gli elementi generati.

Altre funzioni simili includono:

  1. Generate_date_array - generare una serie di date
  2. Generate_Timestamp_array - Genera una matrice di timestamp.

Puoi controllare la documentazione sulle funzioni dell'array per saperne di più.

Accesso ad elementi di array

BigQuery ci consente di utilizzare il valore offset o il valore ordinale per accedere agli elementi in un array.

L'offset è un valore basato su 0, mentre l'ordinale è basato su 1.

Considera una query di esempio di seguito:

SELEZIONARE
my_array [
COMPENSARE
(0)] come offset_0,
my_array [ordinale (1)] come ordinale_0
DA (
SELEZIONARE
Generare_array (1, 5) come my_array);

Nella query, utilizziamo la funzione Generate_Array per generare un array con valori che iniziano da 1 a 5.

Usiamo quindi le funzioni offset e ordinali per recuperare il primo elemento nell'array.

Il codice sopra dovrebbe restituire:

offset_0 ordinal_0
1 1

Puoi scegliere qualsiasi metodo di accesso all'array che desideri utilizzare. Ad esempio, selezionare Offset se preferisci un indice basato su 0; Altrimenti, scegli l'ordinale.

Trovare la lunghezza dell'array

Per ottenere la lunghezza di un array, è possibile utilizzare la funzione Array_Length come mostrato:

SELEZIONARE
Array_Length ([1,2,3,4,5]);

Questo dovrebbe restituire la lunghezza dell'array come:

f0_
5

La lunghezza dell'array si riferisce al numero di elementi nell'array.

Convertire l'array in righe

Per convertire un array in un set di righe, utilizzare la funzione UNNEST come mostrato di seguito:

SELEZIONARE
*
DA
Unnest (generate_array (0, 20, 2)) come pari;

Il codice sopra crea un array di numeri pari da 0 a 20 e li converte in righe usando la funzione poco più.

L'output risultante è mostrato di seguito:

Anche
0
2
--- output troncato---
18
20

Puoi saperne di più sul comando non più.

Convertire l'array in stringa

Se hai una serie di stringhe, è possibile convertirlo in una stringa usando la funzione Array_to_String.

L'uso di esempio è come mostrato:

SELEZIONARE
Array_to_string (['h', 'e', ​​'l', 'l', 'o'], "");

Il codice sopra converte l'array di stringhe in una singola stringa. La sintassi della funzione è:

Array_to_string (array_expression, delimiter [, null_text])

Conclusione

Questo articolo ha fornito le conoscenze fondamentali su come lavorare con gli array in SQL standard utilizzando BigQuery. C'è di più sul tipo di array oltre l'ambito di questo tutorial. Controlla le risorse seguenti per esplorare di più.

https: // cloud.Google.com/bigquery/docs/riferimento/standard-sql/array

https: // cloud.Google.com/bigquery/docs/riferimento/standard-sql/array_functions

Grazie per la lettura e spero che ti sia piaciuto!!