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 |