Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

desconcatenacion help!!!

Estas en el tema de desconcatenacion help!!! en el foro de SQL Server en Foros del Web. hola ke tal tengo un problema !! en la tabla X tengo estos campos id descripcion 1 perro-casa 2 casa-auto 3 luis-petra 4 bla-ble la ...
  #1 (permalink)  
Antiguo 05/01/2007, 11:16
Avatar de dianatorres  
Fecha de Ingreso: diciembre-2006
Mensajes: 26
Antigüedad: 17 años, 5 meses
Puntos: 0
desconcatenacion help!!!

hola ke tal tengo un problema !!
en la tabla X tengo estos campos

id descripcion
1 perro-casa
2 casa-auto
3 luis-petra
4 bla-ble

la verdad lo que quiero es poder desconcatenar elcampo descripcion

tener sin el guioncito i en columnas diferentes
columna 1 columna 2
perro casa
casa auto
luis petra


como le hago help =) se puede ?
  #2 (permalink)  
Antiguo 05/01/2007, 11:55
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: desconcatenacion help!!!

Que tal Diana.

Con el siguiente query obtienes los resultados deseados.
Código:
SELECT ID, SUBSTRING( campoX, 1, CHARINDEX( '-' , campoX ) - 1) as Campo1 ,
SUBSTRING( campoX, CHARINDEX( '-' , campoX )+1, len( campoX) ) as Campo2 
FROm Tabla TuTabla
Donde CampoX es tu campo Descripción.

Ahora bien si quieres reemplazar la tabla actual por una nueva con las caracteristicas que mencionas, haz lo siquiente:
Código:
-- 1.Creamos una tabla con los resultados deseados.
SELECT  ID, SUBSTRING( campoX, 1, CHARINDEX( '-' , campoX ) - 1) as Campo1 ,
SUBSTRING( campoX, CHARINDEX( '-' , campoX )+1, len( campoX) ) as Campo2 
INTO TuTabla2
FROM Tabla TuTabla

-- 2. Eliminamos la tabla que queremos cambiar.
DROP TABLE TuTabla

-- 3. Creamos nuevamente tu tabla, con la nueva estructura.
SELECT ID as ID, Campo1 as CampoA, Campo2 as CampoB
INTO TuTabla
FROM TuTabla2

--4.Eliminamos la tabla "temporal".
DROP TABLE TuTabla2
Saludos y suerte!!
  #3 (permalink)  
Antiguo 05/01/2007, 17:57
Avatar de dianatorres  
Fecha de Ingreso: diciembre-2006
Mensajes: 26
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: desconcatenacion help!!!

hola daniel muchas Gracias si me funciono mui bien
pero sabes , la verad me podrias explicar super breve como es la funcion del charindex me causo confucion de entender.
o tdo el select no le entendi bien pero si me salio , la verdad no me gustaria quedarme con la duda plis =)
De = si no puedes no importa muchas gracias
  #4 (permalink)  
Antiguo 05/01/2007, 18:17
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: desconcatenacion help!!!

Que tal Diana.

Mientras pueda, con gusto.
Código:
CHARINDEX( string1 , string2 )

Devuelve la posición(entero) donde se encuentra string1 en string2, cero si no la encuentra.
---------------------
Por ejemplo:
SELECT CHARINDEX( '-' , 'casa-auto' )

Devuelve 5
Y substring como sabras devuelve fracciones de cadena, entonces usando valores decimos:

Dame parte de la cadena desde 1 hasta ( la posición del guión menos uno)
Y esto es el campo1.

Dame parte de la cadena desde ( la posición del guión + uno) hasta el final de la cadena. Y esto es el campo2.

El más uno y menos uno es para no tomar en cuenta el guión.

Como puedes darte cuenta son solo operaciones(sumas y restas) con cadenas.

Espero haber sido claro.

Saludos y suerte!!
  #5 (permalink)  
Antiguo 05/01/2007, 19:14
Avatar de dianatorres  
Fecha de Ingreso: diciembre-2006
Mensajes: 26
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: desconcatenacion help!!!

Muchas Gracias Realemente fuiste lo bastante claro

Eres Con Ganas lo entendi a l aperfeccion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:38.