根据某些列的值排列表的所有行,例如某些列具有相同值的行需要一起显示

时间:2015-12-03 08:25:54

标签: sql

问题

根据某些列的值排列表的所有行,例如某些列具有相同值的行需要一起显示

EmpId         EmpName        Home Place
101           Ram           Delhi
102           Mohan         Mumbai
103           Shyam         Kolkata
104           Jack          Delhi
105           Sham          Mumbai

查看要求

101           Ram           Delhi
104           Jack          Delhi
102           Mohan         Mumbai
105           Sham          Mumbai
103           Shyam         Kolkata

2 个答案:

答案 0 :(得分:0)

您可以使用SQL ORDER BY子句执行此操作:

select EmpId, EmpName, Home_Place
from MyTable
order by Home_Place

要订购首先出现的特定值(例如kolkata),请执行以下操作:

select EmpId, EmpName, Home_Place
from MyTable
order by case when Home_Place = 'kolkata' then 0 else 1 end,
    Home_Place

答案 1 :(得分:0)

另一种方法,首先按最常见的HomePlace排序:

select EmpId, EmpName, HomePlace
from tablename t1
order by (select count(*) from tablename t2 where t2.HomePlace = t1.HomePlace) desc, HomePlace

编辑:按照“kolkata先来,然后是德里和孟买”的顺序排序,根据需要:

select EmpId, EmpName, HomePlace
from tablename t1
order by case HomePlace when 'Kolkata' then 1
                        when 'Delhi'   then 2
                        when 'Mumbai'  then 3
                        else 4
         end, HomePlace

(请注意,未知城市按结果顺序组合在一起。)