Variável de matriz SQL

Variável de matriz SQL

Este artigo aprenderá a criar e usar tipos de matriz no SQL padrão. É bom observar que, embora as matrizes façam parte do SQL padrão, bancos de dados como MySQL não suportam nativamente matrizes.

O que é uma matriz?

Uma matriz refere -se a uma coleção de uma lista ordenada de itens. Matrizes são muito úteis e poderosas. Aprender a trabalhar com uma matriz pode ajudar a melhorar o desempenho e fornecer técnicas complexas de manipulação de dados.

Em mecanismos de banco de dados, como BigQuery e PostGresql, uma matriz é um tipo embutido que pode ser usado em qualquer lugar do banco de dados.

No entanto, diferentemente do PostGresql, o BigQuery impede que você crie matrizes multidimensionais.

SQL Criar Array

A maneira mais simples de criar uma matriz é usar seu formato literal. Um exemplo é como mostrado:

Selecione
[1,
2,
3,
4,
5] como my_array;

O código acima deve criar uma matriz chamada my_array com os elementos dentro dos colchetes quadrados.

Um exemplo de saída é como mostrado:

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

O segundo método que você pode usar para criar uma matriz é a função Generate_array. Esta função está disponível apenas em BigQuery.

O código abaixo mostra como usar a função Generate_array para gerar uma matriz.

Selecione
Generate_array (1, 5) como my_array;

O código acima gera uma variedade de itens de 1 a 5. A saída resultante é como mostrado:

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

A função Generate_array segue a sintaxe como mostrado abaixo:

Generate_array (start_expression, end_expression [, step_expression])

Você pode usar o Step_Expression para definir o tamanho da etapa para os elementos gerados.

Outras funções semelhantes incluem:

  1. Generate_date_array - gerar uma variedade de datas
  2. Generate_timestamp_array - gera uma variedade de registros de data e hora.

Você pode verificar a documentação sobre as funções da matriz para saber mais.

Acessando elementos da matriz

BigQuery nos permite usar o valor de deslocamento ou o valor ordinal para acessar elementos em uma matriz.

O deslocamento é um valor baseado em 0, enquanto o ordinal é baseado em 1.

Considere um exemplo de consulta abaixo:

Selecione
my_array [
DESVIO
(0)] como offset_0,
my_array [ordinal (1)] como ordinal_0
DE (
Selecione
Generate_array (1, 5) como my_array);

Na consulta, usamos a função Generate_array para gerar uma matriz com valores a partir de 1 a 5.

Em seguida, usamos as funções offset e ordinal para buscar o primeiro elemento na matriz.

O código acima deve retornar:

offset_0 ordinal_0
1 1

Você pode escolher qualquer método de acesso à matriz que deseja usar. Por exemplo, escolha Offset se você preferir um índice baseado em 0; Caso contrário, escolha Ordinal.

Encontrando o comprimento da matriz

Para obter o comprimento de uma matriz, você pode usar a função Array_Length, como mostrado:

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

Isso deve retornar a duração da matriz como:

f0_
5

O comprimento da matriz refere -se ao número de elementos na matriz.

Converter matriz em linhas

Para converter uma matriz em um conjunto de linhas, use a função mais desnecessária, como mostrado abaixo:

Selecione
*
DE
Desne mais (generate_array (0, 20, 2))) como uniforme;

O código acima cria uma matriz de números pares de 0 a 20 e os converte em linhas usando a função mais desnecessária.

A saída resultante é mostrada abaixo:

até
0
2
--- saída truncada---
18
20

Você pode aprender mais sobre o comando mais desnecessário no tutorial vinculado.

Converter matriz em string

Se você tiver uma variedade de strings, poderá convertê -la em uma string usando a função Array_to_string.

Exemplo de uso é como mostrado:

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

O código acima converte a matriz de strings em uma única string. A sintaxe da função é:

Array_to_string (Array_expression, delimiter [, null_text])

Conclusão

Este artigo forneceu o conhecimento fundamental sobre como trabalhar com matrizes no SQL padrão usando BigQuery. Há mais sobre o tipo de matriz além do escopo deste tutorial. Verifique os recursos abaixo para explorar mais.

https: // nuvem.Google.com/bigquery/docs/reference/standard-sql/matrizes

https: // nuvem.Google.com/bigQuery/docs/reference/standard-sql/array_functions

Obrigado pela leitura, e espero que você tenha gostado!!