Seguindo com a tentativa de ajudar vocês com o SQL, essa linguagem deliciosa que não é case sensitive, que não se preocupa com identação, que às vezes nem ponto e vírgula precisa; hoje vamos ver uma função bastante útil: split_part(). Uma função que serve para você encontrar tudo que vem antes ou depois de algum caractere específico (ou algo mais ou menos assim).
Split_part(), como alguns devem já imaginar, diz respeito a dividir o campo. No caso, você consegue utilizá-la para separar o campo por algum caractere qualquer. Por exemplo, imagine que você tenha diretórios e queira localizar uma das subpastas. É aí que entra o split_part().
A função serve para dividir um texto de acordo com alguma string especificada. Se você tiver um texto separado por ‘/’, o split_part() vai separá-lo de acordo com esse divisor. A partir disso, você pode decidir qual dessas partes você quer trazer. Em outras palavras, temos algo como:
split_part(‘parte1/parte2/parte3/parte4/…’, ‘/’, qual parte vc quer trazer)
No exemplo abaixo, temos diversos uma tabela em que a coluna diretório serve para identificar onde se encontra o arquivo. Queremos identificar tudo que vem depois da terceira ‘/’, pois esse é o diretório principal:
select split_part(diretorio, '/', 4);
Caso não tenha ficado claro, vamos ver na prática o que significa com alguns exemplos e o resultado do código:
select split_part('user/andre/documents/python', '/', 3)
Saída: documents
select split_part('program-1', '-', 2)
Saída: 1
select split_part('program-1-part-3', '-', 1)
Saída: program
Espero que tenha ficado claro e que isso possa te ajudar quando tiver que lidar com campos contendo algum divisor específico.