Principales respuestas
Como dividir un campo en dos SQL

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
- Tipo cambiado Miguel Egea GómezMVP, Moderator miércoles, 19 de octubre de 2016 22:40 Es una pregunta
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- Propuesto como respuesta Miguel Egea GómezMVP, Moderator miércoles, 19 de octubre de 2016 22:40
- Marcado como respuesta Laura CeglzModerator viernes, 21 de octubre de 2016 21:29
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- Propuesto como respuesta Miguel Egea GómezMVP, Moderator miércoles, 19 de octubre de 2016 22:40
- Marcado como respuesta Laura CeglzModerator viernes, 21 de octubre de 2016 21:29
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 SImiércoles, 19 de octubre de 2016 21:02 -
pero tiene razon usa charindex y te olvidas de la rutinamiércoles, 19 de octubre de 2016 21:04