locked
Como dividir un campo en dos SQL RRS feed

  • Pregunta

  • Tengo datos en un mismo campo y necesito que esten en columnas diferentes

    Lo que tengo es algo como esto

    21-58 en una misma columna unido por guiones

    y lo necesito asi

    21 | 58 en columnas diferentes

    miércoles, 19 de octubre de 2016 20:42

Respuestas

  • Hola JeanKrlo,

    Puedes hacer uso de la función SUBSTRING para obtener cierta parte de un texto, y CHARINDEX para obtener el índice del guión.

    SELECT
         VALOR1 = SUBSTRING(CAMPO, 0, CHARINDEX('-', CAMPO)),
         VALOR2 = SUBSTRING(CAMPO, CHARINDEX('-', CAMPO) + 1, LEN(CAMPO))
    FROM @T
    GO

    Si usas SQL 2016 : STRING_SPLIT

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 19 de octubre de 2016 20:55

Todas las respuestas

  • Hola JeanKrlo,

    Puedes hacer uso de la función SUBSTRING para obtener cierta parte de un texto, y CHARINDEX para obtener el índice del guión.

    SELECT
         VALOR1 = SUBSTRING(CAMPO, 0, CHARINDEX('-', CAMPO)),
         VALOR2 = SUBSTRING(CAMPO, CHARINDEX('-', CAMPO) + 1, LEN(CAMPO))
    FROM @T
    GO

    Si usas SQL 2016 : STRING_SPLIT

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 19 de octubre de 2016 20:55
  • Me sugerencia debes crear un rutina  utilizando len para saber la longitud de la cadena y con substring y evaluando cada caracter hasta que encuentres este simbolo '|'  de ahi  Substring(campo,1 hasta) los inserta en el campo 1 y  Substring(campo,hasta, Len(Campo))   Campo2

    Marcala como respuesta si te sirvio la información

    Franklin

    miércoles, 19 de octubre de 2016 20:56
  • Hola JeanKrlo,

    También puedes usar la funciones RIGTH y LEFT.

    SELECT
         VALOR1 = LEFT(CAMPO, CHARINDEX('-', CAMPO) - 1),
         VALOR2 = RIGHT(CAMPO, CHARINDEX('-', CAMPO) - 1)
    FROM @T
    GO

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 19 de octubre de 2016 21:02
  • pero tiene razon usa charindex y te olvidas de la rutina
    miércoles, 19 de octubre de 2016 21:04