我有这样的表:
RefNum Date Status
----------------------------------
20276 12/7/2014 Approved
56332 13/7/2014 Approved
HS785 11/7/2014 Approved
52355 10/7/2014 Approved
HS566 15/7/2014 Approved
我需要按
date
列对其进行排序。但棘手的是,我还需要将以'HS'开头的refnum
置于按日期排序的结果的底部。所以结果应该是这样的
RefNum Date Status
----------------------------------
52355 10/7/2014 Approved
20276 12/7/2014 Approved
56332 13/7/2014 Approved
HS785 11/7/2014 Approved
HS566 15/7/2014 Approved
我绝对不能这样
SELECT *
FROM tbl1
ORDER BY Date, RefNum
因为它将首先返回按日期排序的列表。
有任何想法吗?
最佳答案
准备振作起来:您可以在case
中使用order by
:
select *
from tbl
order by
case when RefNum like 'HS%' then 1 else 0 end,
Date
SQL Server允许您几乎在任何地方使用
case
-group by
,order by
,聚合函数...这是一个非常强大的工具:)关于sql - 棘手的按2个不同的列排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29005631/