I have seen many newbies asking "How do I sort the numbers stored in varchar columns?" Here are some methods
declare @t table(data varchar(15)) insert into @t select '6134' union all select '144' union all select '7345' union all select '109812' union all select '100074'union all select '1290' union all select '45764' --Method 1 select data from @t order by cast(data as int) --Method 2 select data from @t order by data+0 --Method 3 select data from @t order by len(data),data --Method 4 select data from @t order by replace(str(data),' ','0') --Method 5 select data from @t group by data order by replicate('0',len(data)),data --Method 6 select data from @t order by replicate('0',(select max(len(data+0)) from @t)-len(data))+data --Method 7 select data from @t cross join ( select len(max(data+0)) as ln from @t ) as t order by replicate('0',ln-len(data))+data
Tags: t-sql, sql_server, varchar_sorting,