select id from tb 
order by parsename(id,4),parsename(id,3),parsename(id,2),parsename(id,1)

解决方案 »

  1.   

    declare @t table
    (col varchar(50))insert @tselect '192.168.40.11' union all 
    select '192.168.40.12' union all 
    select '192.168.40.2' union all 
    select '192.168.5.2'select * from @t order by col desccol                                                
    -------------------------------------------------- 
    192.168.5.2
    192.168.40.2
    192.168.40.12
    192.168.40.11(所影响的行数为 4 行)
      

  2.   

    declare @a table(id varchar(20))
    insert @a 
    select '192.168.5.2' union all
    select '192.168.40.12' union all
    select '192.168.40.2 ' union all
    select '192.168.40.11'select id from @A 
    order by cast(parsename(id,4) as int),cast(parsename(id,3) as int) ,cast(parsename(id,2) as int),cast(parsename(id,1) as int)
      

  3.   

    很感谢你~!我查了一下sql帮助,不太理解parsename函数的用法。请指教,为什么parsename就把ip给分割出来了呢?
    谢谢指点~!