SQL Array -Variable

SQL Array -Variable

In diesem Artikel lernen und verwenden Sie Array -Typen in Standard -SQL. Es ist gut zu beachten, dass Arrays zwar Teil von Standard -SQL sind, Datenbanken wie MySQL Arrays nicht nativ unterstützen.

Was ist ein Array?

Ein Array bezieht sich auf eine Sammlung einer geordneten Liste von Elementen. Arrays sind sehr nützlich und mächtig. Das Lernen, wie man mit einem Array arbeitet, kann dazu beitragen, die Leistung zu verbessern und komplexe Datenmanipulationstechniken bereitzustellen.

In Datenbankmotoren wie BigQuery und PostgreSQL ist ein Array ein integrierter Typ, der überall in der Datenbank verwendet werden kann.

Im Gegensatz zu Postgresql hindert BigQuery jedoch daran, mehrdimensionale Arrays zu erstellen.

SQL Array erstellen

Der einfachste Weg, ein Array zu erstellen, besteht darin, sein wörtliches Format zu verwenden. Ein Beispiel ist wie gezeigt:

WÄHLEN
[1,
2,
3,
4,
5] als my_array;

Der obige Code sollte ein Array namens My_array mit den Elementen in den Quadratklammern erstellen.

Ein Beispielausgang ist wie gezeigt:

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

Die zweite Methode, mit der Sie ein Array erstellen können, ist die Funktion generate_array. Diese Funktion ist nur in BigQuery erhältlich.

Der folgende Code zeigt, wie die Funktion generate_array verwendet wird, um ein Array zu generieren.

WÄHLEN
Generate_array (1, 5) als my_array;

Der obige Code generiert eine Reihe von Elementen von 1 bis 5. Die resultierende Ausgabe ist wie gezeigt:

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

Die Funktion generate_array folgt der Syntax, wie unten gezeigt:

Generate_array (start_expression, end_expression [, step_expression]))

Sie können Step_expression verwenden, um die Schrittgröße für die generierten Elemente festzulegen.

Andere ähnliche Funktionen umfassen:

  1. Generate_date_array - Erzeugen Sie eine Reihe von Daten
  2. Generate_timestamp_array - erzeugt eine Reihe von Zeitstempeln.

Sie können die Dokumentation in Array -Funktionen überprüfen, um mehr zu erfahren.

Zugriff auf Array -Elemente

Mit BigQuery können wir entweder den Offset -Wert oder den Ordnungswert verwenden, um in einem Array auf Elemente zuzugreifen.

Der Offset ist ein 0-basierter Wert, während der Ordinal 1 basiert ist.

Betrachten Sie eine Beispielabfrage unten:

WÄHLEN
my_array [
Offset
(0)] als Offset_0,
my_array [ordinal (1)] als ordinal_0
AUS (
WÄHLEN
Generate_array (1, 5) als my_array);

In der Abfrage verwenden wir die Funktion generate_array, um ein Array mit Werten von 1 bis 5 zu generieren.

Wir verwenden dann die Offset- und Ordnungsfunktionen, um das erste Element im Array zu holen.

Der obige Code sollte zurückgeben:

Offset_0 ordinal_0
1 1

Sie können eine beliebige Methode des Array -Zugriffs auswählen, die Sie verwenden möchten. Wählen Sie beispielsweise Offset, wenn Sie einen 0-basierten Index bevorzugen. Andernfalls wählen Sie Ordinal.

Arraylänge finden

Um die Länge eines Arrays zu erhalten, können Sie die Funktion array_length wie gezeigt verwenden:

WÄHLEN
Array_Length ([1,2,3,4,5]);

Dies sollte die Länge des Arrays als:

f0_
5

Die Länge des Arrays bezieht sich auf die Anzahl der Elemente im Array.

Array in Zeilen umwandeln

Verwenden Sie, um ein Array in eine Reihe von Zeilen umzuwandeln, die unten gezeigte Unnest -Funktion:

WÄHLEN
*
AUS
Unnest (generate_array (0, 20, 2)) wie gerade;

Der obige Code erstellt eine Reihe von gleichmäßigen Zahlen von 0 bis 20 und konvertiert sie mit der Unnest -Funktion in Zeilen.

Die resultierende Ausgabe ist unten angezeigt:

selbst
0
2
--- verkürzte Ausgabe---
18
20

Sie können mehr über den Unnest -Befehl im verknüpften Tutorial erfahren.

Konvertieren Sie das Array in String

Wenn Sie eine Reihe von Zeichenfolgen haben, können Sie sie mit der Funktion array_to_string in eine Zeichenfolge konvertieren.

Die Beispielnutzung ist wie gezeigt:

WÄHLEN
Array_to_string (['h', 'e', ​​'l', 'l', 'o'], "");

Der obige Code wandelt das Zeichenzeichen in eine einzelne Zeichenfolge um. Die Funktionssyntax ist:

Array_to_string (array_expression, delimiter [, null_text])

Abschluss

Dieser Artikel lieferte das grundlegende Wissen über die Arbeit mit Arrays in Standard -SQL mit BigQuery. Es gibt mehr über den Array -Typ über den Bereich dieses Tutorials hinaus. Überprüfen Sie die folgenden Ressourcen, um mehr zu erkunden.

https: // cloud.Google.com/bigQuery/docs/reference/Standard-SQL/Arrays

https: // cloud.Google.com/bigQuery/docs/reference/Standard-sql/array_functions

Danke fürs Lesen und ich hoffe es hat dir gefallen!!