在同一订单上订购2列

时间:2013-03-19 19:18:05

标签: sql postgresql

我有桌子:

示例:

Name       |      Last Name
Albert            Rigs
Carl              Dimonds
Robert            Big
Julian            Berg

我需要这样订购:

Name       |      Last Name
Albert            Rigs         (name)
Julian            Berg         (last name)
Robert            Big          (last name)
Carl              Dimonds     

我需要类似的东西,在同一个订单上按名称和姓氏排序。 看到例子,我有名字阿尔伯特,下一个有序的名字行是它的卡尔,但我有姓和伯格的姓氏,B> C所以我得到第二行的姓氏顺序。 这就像两列相同但不是。 我很难解释,对不起。

可能吗?

提前做出来。

2 个答案:

答案 0 :(得分:4)

要按(Name, Lastname)的最低订购,您可以:

select  *
from    YourTable
order by
        case 
        when Name > LastName then LastName
        else name
        end

答案 1 :(得分:3)

对Case进行语法改进,并允许在另一列上进行ti-break。

 select   *
 from     my_table
 order by least(name,last_name),
          greatest(name,last_name)