Zmienna tablicy SQL

Zmienna tablicy SQL

W tym artykule dowie się, jak tworzyć i używać typów tablic w standardowym SQL. Należy zauważyć, że chociaż tablice są częścią standardowych SQL, bazy danych, takie jak MySQL, nie wspierają tablic natywnie.

Co to jest tablica?

Tablica odnosi się do zbioru uporządkowanej listy elementów. Tablice są bardzo przydatne i potężne. Uczenie się, jak pracować z tablicą, może pomóc poprawić wydajność i zapewnić złożone techniki manipulacji danymi.

W silnikach bazy danych, takich jak BigQuery i PostgreSQL, tablica to wbudowany typ, który można używać w dowolnym miejscu w bazie danych.

Jednak w przeciwieństwie do PostgreSQL, BigQuery uniemożliwia tworzenie tablic wielowymiarowych.

SQL Utwórz tablicę

Najprostszym sposobem utworzenia tablicy jest użycie jej dosłownego formatu. Przykładem jest jak pokazano:

WYBIERAĆ
[1,
2,
3,
4,
5] jako my_array;

Powyższy kod powinien utworzyć tablicę o nazwie My_Array z elementami wewnątrz nawiasów kwadratowych.

Przykładem jest to, jak pokazano:

my_array
„[1,2,3,4,5]”

Drugą metodą, której można użyć do utworzenia tablicy, jest funkcja Generate_Array. Ta funkcja jest dostępna tylko w BigQuery.

Poniższy kod pokazuje, jak korzystać z funkcji Generate_Array, aby wygenerować tablicę.

WYBIERAĆ
Generate_array (1, 5) jako my_array;

Kod powyżej generuje szereg elementów od 1 do 5. Powstałe wyjście jest jak pokazano:

my_array
„[1,2,3,4,5]”

Funkcja Generate_Array jest zgodna z składnią, jak pokazano poniżej:

Generate_array (start_Expression, end_Expression [, Step_Expression])

Możesz użyć step_Expression, aby ustawić rozmiar kroku dla wygenerowanych elementów.

Inne podobne funkcje obejmują:

  1. Generate_date_array - wygenerować szereg dat
  2. Generate_timestamp_array - generuje szereg znaczników czasu.

Możesz sprawdzić dokumentację funkcji tablicy, aby dowiedzieć się więcej.

Dostęp do elementów tablicy

BigQuery pozwala nam korzystać z wartości przesunięcia lub wartości porządkowej, aby uzyskać dostęp do elementów w tablicy.

Offset to wartość oparta na 0, podczas gdy porządek jest oparty na 1.

Rozważ przykładowe zapytanie poniżej:

WYBIERAĆ
my_array [
ZRÓWNOWAŻYĆ
(0)] jako offset_0,
my_array [ordinal (1)] jako ordinal_0
Z (
WYBIERAĆ
Generate_array (1, 5) jako my_array);

W zapytaniu używamy funkcji Generate_Array do generowania tablicy z wartościami zaczynającymi się od 1 do 5.

Następnie używamy funkcji przesunięcia i porządkowych, aby pobrać pierwszy element w tablicy.

Kod powyżej powinien zwrócić:

offset_0 Orinal_0
1 1

Możesz wybrać dowolną metodę dostępu do tablicy, której chcesz użyć. Na przykład wybierz offset, jeśli wolisz indeks oparty na 0; W przeciwnym razie wybierz Orinal.

Znalezienie długości tablicy

Aby uzyskać długość tablicy, możesz użyć funkcji Array_Length, jak pokazano:

WYBIERAĆ
Array_length ([1,2,3,4,5]);

Powinno to zwrócić długość tablicy jako:

F0_
5

Długość tablicy odnosi się do liczby elementów w tablicy.

Konwertuj tablicę na wiersze

Aby przekonwertować tablicę na zestaw wierszy, użyj funkcji Unnest, jak pokazano poniżej:

WYBIERAĆ
*
Z
Unnest (generate_array (0, 20, 2)) jako nawet;

Powyższy kod tworzy tablicę liczb parzystych od 0 do 20 i przekształca je w rzędy za pomocą funkcji Niezbędnej.

Powstałe dane wyjściowe pokazano poniżej:

nawet
0
2
--- Obcięte wyjście---
18
20

Możesz dowiedzieć się więcej o dowództwie Niezniszczonym w połączonym samouczku.

Konwertuj tablicę na ciąg

Jeśli masz tablicę ciągów, możesz przekonwertować go na ciąg za pomocą funkcji array_to_string.

Przykładem użycia jest jak pokazano:

WYBIERAĆ
Array_to_string ([„h”, „e”, „l”, „l”, „o”], „”);

Kod powyżej przekształca tablicę ciągów w jeden ciąg. Składnia funkcji to:

Array_to_string (array_Expression, delimiter [, null_text])

Wniosek

W tym artykule przedstawiono fundamentalną wiedzę na temat pracy z tablicami w standardowym SQL za pomocą BigQuery. Typ macierzy jest więcej poza zakresem tego samouczka. Sprawdź poniższe zasoby, aby zbadać więcej.

https: // chmura.Google.com/bigQuery/Docs/Reference/Standard-SQL/tablic

https: // chmura.Google.com/bigquery/docs/reference/standard-SQL/array_functions

Dziękuję za przeczytanie i mam nadzieję, że ci się podobało!!