Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/01/2013, 10:46
leo_acn
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 5 meses
Puntos: 4
Respuesta: Consulta sobre transformar datos en Sql Server 2005

Aqui te va un ejemplo, primero quita los caracteres como el punto o el guión con el replace y despues dependiendo del largo agrega los 0 que sean necesarios, pero solo te toma el valor en caso de que el largo sea 10, 9 u 8:

declare @rut nvarchar(20)
set @rut = '17.341.280-0'

select rut = case when len(replace(replace(@rut,'.',''),'-','')) = 9 then '0' + replace(replace(@rut,'.',''),'-','')
else case when len(replace(replace(@rut,'.',''),'-','')) = 8 then '00' + replace(replace(@rut,'.',''),'-','')
else case when len(replace(replace(@rut,'.',''),'-','')) = 7 then '000' + replace(replace(@rut,'.',''),'-','') end end end


o si solo quieres transformar los datos que hay en tu tabla basta con que le hagas un

update tabla set rut = case when len(replace(replace(rut,'.',''),'-','')) = 9 then '0' + replace(replace(rut,'.',''),'-','')
else case when len(replace(replace(rut,'.',''),'-','')) = 8 then '00' + replace(replace(rut,'.',''),'-','')
else case when len(replace(replace(rut,'.',''),'-','')) = 7 then '000' + replace(replace(rut,'.',''),'-','') end end end

y listoo...

Última edición por leo_acn; 22/01/2013 a las 10:56