Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Substring e Findstring tratamentos de campos

Boa tarde,

Desde já agradeço.

No exercício referente separação de colunas/sobrenome , Exemplo abaixo:

SUBSTRING(,FINDSTRING(,“DE”, 1) + 3, 50)

Em caso real poderíamos de por exemplo "KATIA DE ALMEIDA", com vários espaços em brancos depois do "DE", e também casos que tenham que tenha separação como no exemplo de 1, dentro de uma mesma planilha.

Tem alguma outra maneiras para esse tipo de tratamento ?

Em casos reais pode acontecer

Gostaria de tirar essa dúvida, pode ajudar?

3 respostas

Oi Diogo! Como vai?

Estou aqui para te ajudar, mas pode me explicar sua dúvida com mais detalhes?

Você gostaria de saber se existe outras maneiras de separar as colunas, sem utilizar a query abaixo:

SUBSTRING(,FINDSTRING(,“DE”, 1) + 3, 50)

É isso?

O que quer dizer com "tenha separação como no exemplo de 1"?

Olá Marina, tudo ótimo,

Sim, isso mesmo.

Fiz essa pergunta pois podemos em um ambiente real pegar uma planilha que tenha mais espaçamentos em uma linha do que em outra ou algum tipo de carácter indevido, e como podemos realizar o tratamento desse tipo de cenário. por exemplo 1 - "KATIA DE ALMEIDA" 2 - "KATIA DE ALMEIDA". 3 - "KATIA DE ** ALMEIDA".

"O que quer dizer com "tenha separação como no exemplo de 1"?" É referente a um exercício que tem relação com a separaçãonome e sobrenome - "KATIA DE ALMEIDA".

Desde já obrigado.

solução!

Oi Diogo! Como vai?

A ideia é sempre de padronizar os dados para que esse tipo de coisa não aconteça. Mas entendo, na vida real, muitas bases são complexas, sua manutenção muitas vezes ocorre com pessoas diferentes, e muitas vezes esse tipo de coisa pode ocorrer devido a falta de uma documentação.

Entretanto, quando os dados não são padronizados, esse tipo de solução não é adequado, pois a cada nova inserção, a query pode não contemplar todas as linhas e gerar algum tipo de erro.

Quando for padronizado, você pode adaptar a query acima mudando o separador, o numero ao lado dele, e quantidade de posições que você quer adicionar ou subtrair.

O foco é sempre de planejar nosso insumo de maneira bem padronizada.

Embora não seja boa prática, existem soluções sim para o caso que você apontou. Existem diversos comandos em T-SQL que você pode combinar de acordo com o que você precisa.

Naõ tenho uma solução pronta para você agora. Mas posso te apontar alguns caminhos.

Você pode tentar algo usando o string_split, que te permite adicionar vários tipos de separações específicas.

https://docs.microsoft.com/pt-br/sql/t-sql/functions/string-split-transact-sql?view=sql-server-ver15

Você pode também usar o trim, o replace e o concat para primeiramente padronizar seus valores, e depois aplicar o substring-findstring (uma vez que os dados estejam no padrão adequado):

https://docs.microsoft.com/pt-br/sql/t-sql/functions/trim-transact-sql?view=sql-server-ver15

https://docs.microsoft.com/pt-br/sql/t-sql/functions/replace-transact-sql?view=sql-server-ver15

https://docs.microsoft.com/pt-br/sql/t-sql/functions/concat-transact-sql?view=sql-server-ver15

Espero que te ajude! Bons Estudos =)