none
extraer correos de columna RRS feed

  • Pregunta

  • Hola,

    Como puedo extraer una palabra que contenga un caracter difinido como una columna?

    es decir si tengo en una columna lo siguiente : "este es el correo prueba@prueba.com", quisiera extraer solo los correos del comentario para mostrarlos en una columna aparte en este caso seria prueba@prueba.com. La posicion del correo puede variar dependiendo del usuario que digito ya que esto es un campo de comentario


    • Editado triplex42 miércoles, 18 de octubre de 2017 16:15
    miércoles, 18 de octubre de 2017 16:13

Respuestas

  • Con el permiso de DANE

    Prueba y nos comentas

    DECLARE @Table TABLE (comment NVARCHAR(100));
    INSERT INTO @Table
    VALUES ('este va al final del texto isaias.islas@live.com.mx'),            --Al final
            ('claro que esto esta enmedio rafael.montero@gmail.com del texto'), --Enmedio
            ('cosa.curiosa@hotmail.com y esto es para ver como se comporta en el inicio'),           --Al inicio
            ('no email');  -- No hay direccion de correo

            SELECT  comment,        
            CASE
                WHEN CHARINDEX('@',comment) = 0 THEN 'No hay direccion de correo'
                ELSE SUBSTRING(comment,beginningOfEmail,endOfEmail-beginningOfEmail)
            END email
    FROM @Table
    CROSS APPLY (SELECT CHARINDEX(' ',comment + ' ',CHARINDEX('@',comment))) AS A(endOfEmail)
    CROSS APPLY (SELECT DATALENGTH(comment)/2 - CHARINDEX(' ',REVERSE(' ' + comment),CHARINDEX('@',REVERSE(' ' + comment))) + 2) AS B(beginningOfEmail)

    jueves, 19 de octubre de 2017 18:04

Todas las respuestas

  • Hola,

    Como puedo extraer una palabra que contenga un caracter difinido como una columna?

    es decir si tengo en una columna lo siguiente : "este es el correo prueba@prueba.com", quisiera extraer solo los correos del comentario para mostrarlos en una columna aparte en este caso seria prueba@prueba.com. La posicion del correo puede variar dependiendo del usuario que digito ya que esto es un campo de comentario


    No puede variar ya que siempre sera de esta forma

    @var="este es el correo■prueba@prueba.com"

    select SUBSTRING(@var,18,LEN(@var)) AS CORREO ;


    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!

    miércoles, 18 de octubre de 2017 17:09
  • Con el permiso de DANE

    Prueba y nos comentas

    DECLARE @Table TABLE (comment NVARCHAR(100));
    INSERT INTO @Table
    VALUES ('este va al final del texto isaias.islas@live.com.mx'),            --Al final
            ('claro que esto esta enmedio rafael.montero@gmail.com del texto'), --Enmedio
            ('cosa.curiosa@hotmail.com y esto es para ver como se comporta en el inicio'),           --Al inicio
            ('no email');  -- No hay direccion de correo

            SELECT  comment,        
            CASE
                WHEN CHARINDEX('@',comment) = 0 THEN 'No hay direccion de correo'
                ELSE SUBSTRING(comment,beginningOfEmail,endOfEmail-beginningOfEmail)
            END email
    FROM @Table
    CROSS APPLY (SELECT CHARINDEX(' ',comment + ' ',CHARINDEX('@',comment))) AS A(endOfEmail)
    CROSS APPLY (SELECT DATALENGTH(comment)/2 - CHARINDEX(' ',REVERSE(' ' + comment),CHARINDEX('@',REVERSE(' ' + comment))) + 2) AS B(beginningOfEmail)

    jueves, 19 de octubre de 2017 18:04