Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – charindexada: Uma função diferente para quebrar strings delimitadas (split)

Visualizações: 2.553 views
Esse post é a parte 4 de 5 da série String Split
Tempo de Leitura: 4 minutos

Fala pessoal!
Um pouco mais de 5 anos após compartilhar com vocês o código da função Split, que permite recuperar uma parte da string quebrada por um delimitador, dessa vez venho compartilhar uma nova função, chamada charindexada, escrita pelo Brunno Araújo e que gentilmente me cedeu os “direitos de copyright” para compartilhá-la aqui no blog.

Interessado em aprender mais sobre split?

Essa função tem o objetivo básico de permitir algumas consultas especializadas utilizando separadores em uma string.

Seus parâmetros são:

  • @delimitador_esquerda: String que representa o delimitador à esquerda da string. Pode-se utilizar o mesmo delimitador no início e fim ou podem ser delimitadores diferentes.
  • @posicao_inicial: Número do delimitador inicial. Especifica a partir de qual parte da string será iniciada a extração do texto.
  • @delimitador_direita: String que representa o delimitador à direita da string. Caso seja diferente do delimitador inicial, poderá extrair o texto que está entre os dois delimitadores. Caso seja igual ao delimitador inicial, pode-se extrair partes da string (meio)
  • @posicao_fim: Número do delimitador final. Especifica quantas partes serão extraídas do texto.
  • @string: A string em si que será analisada e extraída
  • @tipo: Indica o tipo de retorno da função. Tipo = 0 retorna a posição da string localizada. Tipo = 1 (padrão), retorna a string localizada.

Abaixo, vou mostrar alguns exemplos de como ela pode ser útil.

Exemplo 1 – Texto entre delimitadores

No exemplo abaixo, quero retornar a string que está entre os delimitadores “/” e “\”:

Resultado:

Exemplo 2 – Recuperar o início de uma string delimitada

No exemplo abaixo, quero retornar as 3 primeiras partes de uma string delimitada por underline (_):

Resultado:

Exemplo 3 – Recuperar o meio de uma string delimitada

No exemplo abaixo, vou mostrar como recuperar 2 partes de uma string delimitada por underline (_), a partir da 4 parte:

Resultado:

Exemplo 4 – Recuperar o final de uma string delimitada

No exemplo abaixo, vou mostrar como recuperar o final de uma string (99 partes kkkk) a partir da 4ª parte de uma string delimitada por underline (_):

Resultado:

Exemplo 5 – Recuperar só uma parte da string delimitada

No exemplo abaixo, vou mostrar como recuperar somente uma parte (4ª parte) de uma string delimitada por ponto-e-virgula (;):

Resultado:

Código-fonte da charindexada:

E aqui, vou disponibilizar o código da função charindexada pra você utilizá-las nos seus projetos, estudos e testes:

É isso aí, pessoal!
Espero que vocês tenham gostado dessa função bem legal e que promete ajudar bastante as pessoas que tem necessidades parecidas com as que demonstrei aqui no artigo e agradecer novamente ao Brunno Araújo pelo tempo gasto no desenvolvimento dessa função e em ter deixado eu postá-la aqui no blog.

Um grande abraço e até a próxima!