PostgreSQL SUBSTRING
A função SUBSTRING do PostgreSQL é usada para extrair uma parte de uma string com base em índices especificados. Essa função é essencial para lidar com a manipulação de strings e tarefas de análise de dados em um banco de dados.
Uso
A função SUBSTRING é usada quando você precisa extrair partes de uma cadeia de caracteres, como recuperar uma parte de um campo de texto ou analisar formatos de dados específicos. Ele é usado com frequência em tarefas de transformação e preparação de dados.
SUBSTRING(string FROM start [FOR length])
Nessa sintaxe, string é a cadeia de caracteres de origem, start indica a posição inicial e length é o número de caracteres a serem extraídos. Se length for omitido, a substring se estenderá até o final da cadeia de caracteres.
Exemplos
1. Extração básica de substring
SELECT SUBSTRING('PostgreSQL Tutorial' FROM 1 FOR 10);
Este exemplo extrai os primeiros 10 caracteres da string, resultando na saída: 'PostgreSQL'.
2. Substring sem comprimento especificado
SELECT SUBSTRING('Database Management' FROM 10);
Aqui, a substring começa a partir do 10º caractere e continua até o final, resultando em: 'Management'.
3. Substring com correspondência de padrões
SELECT SUBSTRING('abc123def456' FROM '[0-9]+');
Este exemplo usa uma expressão regular para extrair a primeira sequência de dígitos da cadeia de caracteres, resultando em: '123'.
4. Caso de ponta: Início excede o comprimento da cadeia de caracteres
SELECT SUBSTRING('Short' FROM 10 FOR 5);
Quando a posição start excede o comprimento da string, o resultado é uma string vazia: ''.
5. Caso de ponta: Índices negativos
SELECT SUBSTRING('Negative Test' FROM -5);
O uso de índices negativos resultará em um erro, pois start deve ser um número inteiro positivo.
Dicas e práticas recomendadas
- Fique atento aos índices. O PostgreSQL usa indexação baseada em 1, o que significa que a contagem começa em 1, não em 0.
- Utilize expressões regulares. Use padrões regex para tarefas mais complexas de extração de strings para corresponder a padrões específicos.
- Combine com outras funções. Use
SUBSTRINGjuntamente com outras funções de cadeia de caracteres, comoTRIMouLENGTH, para uma manipulação de cadeia de caracteres mais robusta. - Evite extrações desnecessárias. Certifique-se de que os parâmetros
startelengthsejam precisos para evitar erros ou resultados inesperados. - Considerações sobre o desempenho. Tenha cuidado ao usar
SUBSTRINGem consultas que processam grandes conjuntos de dados, pois isso pode afetar o desempenho. - Funções relacionadas. Considere usar
LEFTouRIGHTquando você precisar extrair um número fixo de caracteres do início ou do fim de uma cadeia de caracteres, respectivamente.