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

Cambiar datos de un campo

Estas en el tema de Cambiar datos de un campo en el foro de SQL Server en Foros del Web. Hola a todos, Necesito cambiar un campo nombre con el formato apellido apellido, nombre por nombre, apellido apellido. ¿Hay alguna manera de hacerlo?. Muchas gracias. ...
  #1 (permalink)  
Antiguo 30/12/2009, 07:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 14
Antigüedad: 16 años, 11 meses
Puntos: 0
Cambiar datos de un campo

Hola a todos,

Necesito cambiar un campo nombre con el formato apellido apellido, nombre por nombre, apellido apellido. ¿Hay alguna manera de hacerlo?.

Muchas gracias.

Enrique
  #2 (permalink)  
Antiguo 30/12/2009, 11:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Cambiar datos de un campo

Opsssss, no lo entiendo.....
  #3 (permalink)  
Antiguo 30/12/2009, 11:29
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 9 meses
Puntos: 15
Respuesta: Cambiar datos de un campo

Hola...

Me parece que te refieres a que tu campo Nombre que tiene Apellido Apellido, Nombre (Ejm. "Lope Vega, Jose") lo quieres Cambiar por Nombre,Apellido Apellido (Ejm. "Jose, Lope Vega")
...

Si es asi opten la ubicacion de la Coma (,) que como indicas separa los apellidos del nombre ya que hay apellidos compuestos no debes fiarte de los espacios en blanco.

Al saber en que parte de tu cadena se ubica la coma; entonces haces un Update al Nombre y si la coma esta en el lugar = 10

UPDATE tabla set nombre=substring(nombre,11,len(rtrim(nombre)))+',' +substring(nombre,1,9)

Mas o menos es lo que necesitas?

Última edición por vrenzo; 30/12/2009 a las 11:46 Razón: :P
  #4 (permalink)  
Antiguo 30/12/2009, 11:41
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 9 meses
Puntos: 15
Algo asi.. con un cursor...

declare @lugar int,@id int

declare cambiar_formato_ok cursor for


select PATINDEX( '%,%', nombre),id
from mi_tabla
order by id

open cambiar_formato_ok
fetch next from cambiar_formato_ok
into @lugar ,@id

while @@fetch_status=0
begin

update mi_tabla set nombre=substring(nombre,@lugar+1,len(rtrim(nombre) ))+','+ substring(nombre,1,@lugar-1)) where id=@id

fetch next from cambiar_formato_ok
into @lugar ,@id

end
close cambiar_formato_ok
deallocate cambiar_formato_ok
go


Saludos.
  #5 (permalink)  
Antiguo 30/12/2009, 14:41
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Cambiar datos de un campo

Me gusta la opcion SIN CURSOR, saludos
  #6 (permalink)  
Antiguo 31/12/2009, 09:37
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Busqueda Respuesta: Cambiar datos de un campo

Cita:
Iniciado por iislas Ver Mensaje
Me gusta la opcion SIN CURSOR, saludos
A mi tambien...

en operaciones asi es completamente innecesario...

Tomando como base el script posteado, podriamos hacer el update directo..

Código:
UPDATE mi_tabla 
SET    nombre = SUBSTRING(nombre,PATINDEX( '%,%', nombre)+1,LEN(RTRIM(NOMBRE)))
              + ','
              + SUBSTRING(nombre,1,PATINDEX( '%,%', nombre)-1)) 
WHERE PATINDEX( '%,%', nombre) > 0
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 04/01/2010, 16:56
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 9 meses
Puntos: 15
Respuesta: Cambiar datos de un campo

Ok ... muy buena respuesta andres95...
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 13:59.