Usuário com melhor resposta
charindex

Pergunta
-
estou com um probleminha,
estou com uma base de emails, e preciso saber o email da pessoa em um campo chamado corpo que é o corpo do e-mail.
como usar o charindex para descobrir apenas o email exato da pessoa?
o campo está como um monte de coisas dizendo que o email nao pode ser enviado e o endereco de email que nao pode ser enviado, preciso que me retorne apenas esse email que nao pode ser enviado, nao pode ser o campo inteiro.
sei que preciso dar um charindex,
where corpo like '@' alguma coisa...rs..como faço?
att,
Ricardo Almeida
Respostas
Todas as Respostas
-
-
-
Olá Ricardo,
Veja se o código abaixo o ajuda:
Code BlockDECLARE
@texto VARCHAR(1000), @TextoRev VARCHAR(1000)SET
@texto = 'asdkasfn #sdfn, $ asdknas, &¨$%¨$%¨asdTRG suemail@conta.com.br askdas,n$% t4rnçwrefmç'SET
@TextoRev = REVERSE(@texto)DECLARE
@posArroba INTSET
@posArroba = (SELECT CHARINDEX('@',@texto))DECLARE
@posEspacoFimEmail INTSET
@posEspacoFimEmail = (SELECT CHARINDEX(' ',@texto, @posArroba))DECLARE
@posArrobaRev INTSET
@posArrobaRev = (SELECT CHARINDEX('@',@textoRev))DECLARE
@posEspacoInicioEmail INTSET
@posEspacoInicioEmail = LEN(@Texto) - (SELECT CHARINDEX(' ',@textoRev, @posArrobaRev))SELECT
SUBSTRING(@Texto,@posEspacoInicioEmail+2,@posEspacoFimEmail-@posEspacoInicioEmail-2)[ ]s,
Gustavo
-
-
Ricardo,
Você pode também combinar o uso do CharIndex com o PatIndex, veja abaixo o exemplo:
Code BlockDeclare
@Email VarChar(25),@Dominio Varchar
(10),@TamanhoDominio
SmallIntSet @Email='jnio@ltex.com.br'
Set
@TamanhoDominio=(Select PatIndex('%@%',@Email))Select
@Dominio=Substring(@Email,PatIndex('%@%',@Email),CharIndex('.',@Email)-@TamanhoDominio)If
@TamanhoDominio >=2 Print 'Domínio: '+@Dominio+' é válido'Else
Print
'Domínio: '+@Dominio+' inválido'