Ir para conteúdo
  • 0

SUBSTRING Não funciona - Resolução da aula não funciona para mim.


Alexandre Borges

Pergunta

  • Alunos

Duvida do "Desafio (manipulando dados vachar)" do Módulo 4 do curso de SQL 

SUBSTRING(TITULO, 1, CHARINDEX('/', TITULO)-1) AS DOCUMENTO

O código acima é a resolução dada pelo instrutor para extrair o texto que está antes do caractere '/' na coluna TITULO.
Conforme as imagens em anexos, essa resolução me retorna o erro "Parâmetro de comprimento inválido passado para a função LEFT ou SUBSTRING."
Alguém pode me esclarecer o motivo? Até o chat gpt diz que está correto. 

Obs:
Se eu remover a subtração da função CHARINDEX, o código roda normalmente, porém me traz o caracteres '/' no resultado.  
SUBSTRING(TITULO, 1, CHARINDEX('/', TITULO)) AS DOCUMENTO
Se eu substituir a subtração por uma adição, o código também roda. 
SUBSTRING(TITULO, 1, CHARINDEX('/', TITULO)+1) AS DOCUMENTO
 

SQL ANEXO 2.png

SLQ ANEXO 1.png

SQL ANEXO 3.png

Editado por Alexandre Borges
Melhorei o titulo da duvida
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Suave @Alexandre Borges?

O teu erro está acontecendo porque provavelmente algum valor na coluna "TITULO" não possui o "/", então a query tenta retornar uma substring de tamanho -1.

Uma outra maneira de contornar isso é envolvendo toda a função SUBSTRING() por um REPLACE(), ficaria assim:

 

REPLACE(SUBSTRING(TITULO, 1, CHARINDEX('/', TITULO)), '/', '') AS DOCUMENTO

 

Abs!

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...