Fórum SUBSTRING com Left e Right #594374
22/05/2018
0
Boa tarde,
alguém poderia me ajudar?
Preciso extrair de um campo o email abaixo exemplo de tabela;
Linha CampoX Nome
1 Meu Nome é michelle meu email é mic@hotmail.com Michelle
2 email é mic@hotmail.com Michelle Penha
Como faço para extrair do CampoX apenas o ''''mic@hotmail.com''''
''''
alguém poderia me ajudar?
Preciso extrair de um campo o email abaixo exemplo de tabela;
Linha CampoX Nome
1 Meu Nome é michelle meu email é mic@hotmail.com Michelle
2 email é mic@hotmail.com Michelle Penha
Como faço para extrair do CampoX apenas o ''''mic@hotmail.com''''
''''
Michelle Penha
Curtir tópico
+ 0
Responder
Post mais votado
23/05/2018
crie uma função para retornar o email:
depois você poderá executar na sua instrução:
SELECT Linha, fRetEmail(CampoX) Email, Nome FROM tabela
1 Meu Nome é michelle meu email é mic@hotmail.com Michelle
2 email é mic@hotmail.com Michelle Penha
Como faço para extrair do CampoX apenas o ''''mic@hotmail.com''''
CREATE FUNCTION dbo.fRetEmail(@email VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
DECLARE @email2 varchar(250)
DECLARE @arroba int
DECLARE @espaco int
DECLARE @posicao int
SET @email2 = @email
SET @arroba = CHARINDEX('@', @email2)
SET @posicao = @arroba
SET @espaco = CHARINDEX(' ', @email2, @arroba+1)
IF @espaco > 0
SET @email2 = LEFT(@email2, @espaco)
WHILE @posicao > 1
BEGIN
IF SUBSTRING(@email2,@posicao,1)=' '
BEGIN
SET @email2 = SUBSTRING(@email2,@posicao+1,LEN(@email2))
SET @posicao = 1
END
SET @posicao = @posicao - 1
END
IF @email2 IS NULL
OR @email2 = ''
OR @email2 NOT LIKE '[0-9a-zA-Z]%@__%.__%'
OR @email2 LIKE '%@%@%'
OR @email2 LIKE '%..%'
OR @email2 LIKE '%.@'
OR @email2 LIKE '%@.'
OR @email2 LIKE '%@%.-%'
OR @email2 LIKE '%@%-.%'
OR @email2 LIKE '%@-%'
OR CHARINDEX(' ',LTRIM(RTRIM(@email2))) > 0
SET @email2 = @email2 + ': não parece um email válido'
RETURN LTRIM(RTRIM(@email2))
END
depois você poderá executar na sua instrução:
SELECT Linha, fRetEmail(CampoX) Email, Nome FROM tabela
1 Meu Nome é michelle meu email é mic@hotmail.com Michelle
2 email é mic@hotmail.com Michelle Penha
Como faço para extrair do CampoX apenas o ''''mic@hotmail.com''''
Emerson Nascimento
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)