mssql sqlserver 数据表按照指定(特定)值排序的方法分享


摘要:
下文讲述将数据表中列值按照指定值进行排序,如下所示
实验环境:sql server 2008 r2


今天接到同事的需求,需要将数据表中,列值为”A”的排第一位,列值为”B”的排第二位,列值为”C”的排第三位,
其它排随机排最后,经过上网查阅各种资料,终于找到了实现此类需求的方法。

实现思路:
采用case when 对排序字段重新编码,然后进行排序

    ---例:对数据表中"列1"值,按照列值等于A 、B、C的方式依次排序
    select [列1],[列2],[列3] ...  
     from [数据表]
      where 1=1 ...   ---检索条件
      order by  
       case  
            when [列1] ='A' then 0
            when [列1] ='B' then 1
            when [列1] ='C' then 2
            else   3
       end
     asc