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.