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

Substring o alguna otra forma?

Estas en el tema de Substring o alguna otra forma? en el foro de Bases de Datos General en Foros del Web. Hola amigos Mi duda es la siguiente........ Como puedo en una consulta o view en MS SQL Server seleccionar algo de otra columna segund una ...
  #1 (permalink)  
Antiguo 09/03/2005, 09:32
 
Fecha de Ingreso: diciembre-2002
Ubicación: USA
Mensajes: 101
Antigüedad: 21 años, 5 meses
Puntos: 0
Substring o alguna otra forma?

Hola amigos
Mi duda es la siguiente........
Como puedo en una consulta o view en MS SQL Server seleccionar
algo de otra columna segund una condicion?
Lo que quiero hacer es esto:

Apellido|Nombre|Titulo
Soto|Luis|Ingeniero
Flores|Marcos|Editor - Flores
Ortiz|Ilda|Supervisor Ortiz

Quiero que la seleccion me quede asi:


Apellido|Nombre|Titulo
Soto|Luis|Ingeniero
Flores|Marcos|Editor
Ortiz|Ilda|Supervisor

Dividi las columnas con el | en este ejemplo...
Podrian ayudarme por favor??

Última edición por blue_laser0; 09/03/2005 a las 09:34
  #2 (permalink)  
Antiguo 09/03/2005, 13:26
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 5 meses
Puntos: 0
Exactamente no se que condición quieres poner pero te podría valer con la instrucción transact case:

Un ejemplo muy sencillo:

select Apellido,Nombre, (case Titulo when 'Editor - Flores' then 'Editor' when 'Supervisor Ortiz' then 'Supervisor' else Titulo end) as Titulo1 from tabla

otro ejemplo si quisieras cortar el titulo por el primer espacio que encuentres:

select Apellido,Nombre, (case charindex(' ',Titulo) when 0 then Titulo else substring(Titulo,1,charindex(' ',Titulo)-1) end) as Titulo1 from tabla

Creo que esta es la sintaxis de todas formas mira en los libros en pantalla y busca funciones de cadena y case.

Salu2.
  #3 (permalink)  
Antiguo 09/03/2005, 14:39
 
Fecha de Ingreso: diciembre-2002
Ubicación: USA
Mensajes: 101
Antigüedad: 21 años, 5 meses
Puntos: 0
Gracias por contestar...
Lamentablemente el primer case no me sirve con 230,220 registros a los que se le hara la revision...
El segundo case tampoco podria usarlo porque algunos titulos tienen espacio y solo quiero eliminarle el apellido que esta en el titulo...

Esto parece que es todo un reto!


Última edición por blue_laser0; 09/03/2005 a las 14:41
  #4 (permalink)  
Antiguo 09/03/2005, 15:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 1 mes
Puntos: 25
Si sabes que caracter separa el apellido entonces simplemente edita el CASE que ya te dieron y lo sacarás.

Si no tienes manera de distinguir entre un apellido y una palabra estándar entonces no puedes hacer nada (que no sea manual).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 09/03/2005, 16:28
 
Fecha de Ingreso: diciembre-2002
Ubicación: USA
Mensajes: 101
Antigüedad: 21 años, 5 meses
Puntos: 0
No habra forma si tengo todos los apellidos?
Supervisor Cruz
Ingeniero Electrico Gomez

En cada registro tengo el apellido en otro campo tambien y como columna...no podra hacerse algo que compare el apellido de ese registro con el titulo y me extraiga todo en ese campo menos el apellido?
  #6 (permalink)  
Antiguo 10/03/2005, 03:07
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 5 meses
Puntos: 0
Una forma un poco arriesgada:

select replace(Titulo,Apellido,'') from tabla

Si estás seguro que el apellido viene precedido por un espacio:

select replace(Titulo,' '+Apellido,'') from tabla

El inconveniente que tendría es que coincidiera (casualidades) alguna parte del título con el apellido.

Salu2.

Última edición por cableh; 10/03/2005 a las 03:09
  #7 (permalink)  
Antiguo 10/03/2005, 14:10
 
Fecha de Ingreso: diciembre-2002
Ubicación: USA
Mensajes: 101
Antigüedad: 21 años, 5 meses
Puntos: 0
cableh
Pues te dire una cosa...


GRACIAS!!!!!
Eso es lo que necesitaba!
Quedo Perfecto!
  #8 (permalink)  
Antiguo 10/03/2005, 18:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 3 meses
Puntos: 6
¡Qué fácil y qué útil!

Última edición por un_tio; 10/03/2005 a las 18:06
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 11:02.