Função de substring Sintaxe
A sintaxe básica e mais usada para a função de substring é a seguinte, onde cadeia de caracteres é a sequência principal da qual extrairemos substringas. O posicão inicial é a posição do primeiro caractere da substring na sequência principal, e o comprimento_of_characters é o número de caracteres na substring:
1 | substring (caractere_string, starting_position, length_of_characters); |
OU
1 | substring (caractere_string de start_position [para number_characters]); |
Além disso, você pode extrair uma substring de dados binários usando a seguinte sintaxe, onde binário_expression são os dados binários com o tipo de dados Varbyte. O Starting_byte é a posição do primeiro byte da substring extraída de dados binários, e o número_bytes é o número de bytes que a substring incluirá.
Se você não especificar o número_bytes Na função de substring, ele extrairá a substring a partir de Starting_byte até o final dos dados binários.
1 | substring (binary_expression, starting_byte, number_bytes); |
OU
1 | substring (binary_expression, starting_byte); |
Usando a função de substring
Até agora, discutimos a sintaxe da função de substring. Nesta seção, veremos como essa função pode ser usada. Vamos discutir alguns exemplos para entender o funcionamento da função de substring:
A função de substring pode ser usada para consultar dados do cluster do desvio para o vermelho com as consultas selecionadas. Esta seção usará a função de substring com a consulta selecionada.
A consulta a seguir retornará o Desvio para o vermelho Quando executado no Redshift:
1 | selecione Substring ('AWS Redshift', 5,8); |
A tabela a seguir mostra a contagem de personagens no AWS Redshift corda. O espaço entre AWS e Redshift também é contado como um personagem.
A | C | S | R | E | D | S | H | EU | F | T | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
A posição inicial é 5, e o personagem na 5ª contagem é r. O comprimento do personagem é 8, o que significa que começando pela letra, r, oito caracteres serão devolvidos.
Da mesma forma, a seguinte consulta retornará AWS Quando executado no Redshift. O primeiro caractere é A, e a contagem total de substring é 3; É por isso que retornará a substring da AWS.
1 | selecione Substring ('AWS Redshift', 1,3); |
Se o STARGE_POSIÇÃO+LIMPE_OF_CHARACTERS é maior que o número total de caracteres no cadeia de caracteres, O desvio para o vermelho retornará o valor que começa da posição inicial ao final da string.
Além disso, se o comprimento do caractere não for especificado, a função de substring retornará o valor a partir da posição inicial ao final da string.
1 | selecione Substring ('AWS Redshift', 7,8); |
OU
1 | selecione Substring ('AWS Redshift', 7); |
Em ambos os casos, a saída será Dshift, Como mostrado na figura abaixo:
Se a posição inicial for zero ou menor que zero (negativo) valor, a função de substring retornará uma substring começando no primeiro caractere do cadeia de caracteres com um comprimento de STARGE_POSIÇÃO+LIMPE_OF_CHARACTERS-1.
1 | selecione Substring ('AWS Redshift',-3,7); |
A saída será AWS, Como mostrado na figura abaixo:
Se o STARGE_POSIÇÃO+LIMPE_OF_CHARACTERS-1 é menor ou igual a zero, a função de substring retornará uma string vazia.
1 | selecione Substring ('AWS Redshift',-5,4); |
A saída para esta consulta será vazio, Como mostrado na figura abaixo:
A consulta a seguir criará o AWS_REDSHIFT_SUBSTRING no cluster do desvio para o vermelho com os atributos especificados:
1 2 3 4 5 6 7 | Crie tabela aws_redshift_substring ( |
Insira dados na tabela usando o método de inserção.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | inserir nos valores AWS_REDSHIFT_SUBSTRING (1, 'MR. Dwayne Johnson '); |
As consultas anteriores inserirão dados na tabela. Agora, selecione os valores da tabela usando a seguinte consulta:
1 | Selecione * de AWS_REDSHIFT_SUBSTRING; |
s_no | personagem |
---|---|
1 | Senhor. Dwayne Johnson |
2 | Senhor. Vin Diesel |
3 | Senhor. Will Smith |
4 | Senhor. Robert Downey Jr. |
5 | Senhor. Chris Hemsworth |
6 | Senhor. Leonardo DiCaprio |
7 | Senhor. Ryan Reynolds |
8 | Senhor. Chris Pratt |
9 | Senhor. Hugh Jackman |
10 | Senhor. Mark Wahlberg |
Agora, aplique algumas funções de substring nesta tabela. Extraímos apenas os nomes, negligenciando o título. Para isso, execute a seguinte consulta:
1 | Selecione *, substring (PESOLNAME, 4) como new_name de AWS_REDSHIFT_SUBSTRING; |
Esta consulta retornará as substringas do personagem coluna em uma nova coluna.
s_no | personagem | novo nome |
---|---|---|
1 | Senhor. Dwayne Johnson | Dwayne Johnson |
2 | Senhor. Vin Diesel | Vin Diesel |
3 | Senhor. Will Smith | Will Smith |
4 | Senhor. Robert Downey Jr. | Robert Downey Jr. |
5 | Senhor. Chris Hemsworth | Chris Hemsworth |
6 | Senhor. Leonardo DiCaprio | Leonardo DiCaprio |
7 | Senhor. Ryan Reynolds | Ryan Reynolds |
8 | Senhor. Chris Pratt | Chris Pratt |
9 | Senhor. Hugh Jackman | Hugh Jackman |
10 | Senhor. Mark Wahlberg | Mark Wahlberg |
Da mesma forma, podemos obter substâncias de personagem Usando a seguinte consulta selecionada junto com a função de substring:
1 | SELECT *, substring (nome de pessoa de 1 para 3) como título de AWS_REDSHIFT_SUBSTRING; |
Isso extrairá o único título enquanto negligencia o nome completo.
S_no | personagem | título |
---|---|---|
1 | Senhor. Dwayne Johnson | Senhor. |
2 | Senhor. Vin Diesel | Senhor. |
3 | Senhor. Will Smith | Senhor. |
4 | Senhor. Robert Downey Jr. | Senhor. |
5 | Senhor. Chris Hemsworth | Senhor. |
6 | Senhor. Leonardo DiCaprio | Senhor. |
7 | Senhor. Ryan Reynolds | Senhor. |
8 | Senhor. Chris Pratt | Senhor. |
9 | Senhor. Hugh Jackman | Senhor. |
10 | Senhor. Mark Wahlberg | Senhor. |
Conclusão
Este artigo discutiu como poderíamos usar a função de substring para executar consultas no cluster de desvio para o vermelho. Extrair dados modificados do banco de dados é uma grande tarefa e pode ser executado usando a função de substring. O uso da função de substring pode ajudar a evitar a modificação de dados pós -consulta, pois obtém os dados modificados.