PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como usar a função Substring no PostgreSQL e Redshift


Às vezes, uma string em seu banco de dados pode conter algumas informações incorporadas a essa string como uma substring. Essa string pode ser um número de ID que pode existir em uma atividade ou número de rastreamento para o site da sua empresa.

Aqui está um exemplo em que uma empresa que monitora a atividade de tráfego do site tem uma convenção de nomenclatura específica para o ID de acompanhamento de atividades. A convenção de nomenclatura é “ID da atividade” que tem 6 caracteres e na primeira posição, “ID do cliente” que tem 7 caracteres e aparece em segundo lugar, e na terceira posição “ID da página” que tem 3 caracteres. Esses três números de ID são colocados juntos em uma única string sem caracteres de divisão. Neste exemplo, um número de rastreamento pode ter esta aparência:WSL194OH08856CAS.

Você pode querer extrair o número do ID do cliente e, para isso, pode usar a seguinte função de substring:

SUBSTRING("WSL194OH08856CAS",7,7)

Sabendo que o número de ID do cliente tem 7 dígitos e começa na 7ª posição, a fórmula descrita acima funciona desta forma:



Além disso, você pode querer ter apenas o ID da atividade. Para obter isso, você usará a mesma função apenas de uma maneira ligeiramente diferente.

SUBSTRING("WSL194OH08856CAS",1,6)

Assim como o trecho de código anterior, vimos que este começará na 1ª posição e retornará uma string com 6 caracteres.

Em nosso exemplo final, você pode estar interessado no ID da página, que no nosso caso está no final da string. Para isso você pode usar a função assim:

SUBSTRING("WSL194OH08856CAS",14)

Neste exemplo, ao omitir o argumento final, você está comandando o banco de dados para retornar a você tudo depois e incluindo o caractere na 14ª posição.

Usando esta função, agora você pode analisar uma string em uma coluna com base em posições conhecidas e comprimentos de substrings que ela pode conter. Essa é uma técnica útil para dividir uma coluna em várias substrings se essas substrings puderem ser usadas de uma maneira diferente da totalidade da string original.