PostgreSQL SPLIT_PART
A função `SPLIT_PART` no PostgreSQL é utilizada para dividir uma string em partes com base em um delimitador especificado e retorna a parte especificada. É uma função útil para analisar e extrair segmentos específicos de uma cadeia de caracteres.
Uso
A função `SPLIT_PART` é utilizada quando você precisa recuperar uma parte específica de uma cadeia de caracteres que está separada por um delimitador. É especialmente útil para lidar com cadeias de caracteres estruturadas, como dados CSV.
sql
SPLIT_PART(string, delimiter, field)
Nessa sintaxe, `string` e `delimiter` devem ser do tipo de dados `text` ou implicitamente convertíveis em `text`. `string` é a cadeia de caracteres de origem a ser dividida, `delimiter` é o caractere ou a cadeia de caracteres que separa as partes e `field` é o índice baseado em 1 da parte a ser retornada. A função retorna um tipo `texto`.
Exemplos
1. Uso básico do SPLIT_PART
sql
SELECT SPLIT_PART('apple,banana,cherry', ',', 2);
Este exemplo extrai o segundo elemento, `banana`, da lista separada por vírgulas.
2. Extração de domínio de e-mail
sql
SELECT SPLIT_PART('user@example.com', '@', 2);
Aqui, a função recupera a parte do domínio, `example.com`, do endereço de e-mail.
3. Analisando números de versão
sql
SELECT SPLIT_PART('Version 10.2.5', '.', 3);
Este exemplo extrai o terceiro segmento, `5`, de uma string de número de versão, demonstrando sua aplicação na análise de números de versão. Se o índice do campo especificado estiver fora do intervalo, a função retornará uma cadeia de caracteres vazia.
4. Extração da última parte de uma cadeia de caracteres
sql
SELECT SPLIT_PART('file.tar.gz', '.', 3);
Para extrair a última parte de uma cadeia de caracteres, você pode calcular o número de partes primeiro e, em seguida, usar `SPLIT_PART` para recuperar a última parte.
Dicas e práticas recomendadas
- Verifique se o delimitador existe. Antes de usar o `SPLIT_PART`, verifique se o delimitador está presente na cadeia de caracteres para evitar resultados inesperados. Se o delimitador não for encontrado, a cadeia inteira será retornada como o primeiro campo.
- Use com cadeias de caracteres estruturadas. Ideal para cadeias de caracteres com delimitadores consistentes, como CSV ou entradas de registro.
- Observe o índice. O argumento `field` é baseado em 1 e não em 0, portanto, tenha cuidado ao especificar a parte a ser extraída.
- Manuseie as peças que estão faltando. Esteja preparado para que o `SPLIT_PART` retorne uma cadeia de caracteres vazia se a parte solicitada não existir.
- Entenda as limitações. O `SPLIT_PART` não oferece suporte a índices negativos, ao contrário de outras linguagens.
- Considerações sobre o desempenho. O `SPLIT_PART` não é adequado para a análise baseada em delimitadores de dados de texto muito grandes devido às possíveis implicações de desempenho.