我在SQL Server 2008中有一个表
我需要得到第一个结果是今天过生日的人,其余结果按fname,lname排序
例如,我有这张表:
fname|lname|Tdate
AA |111 |03/08
BB |222 |18/01
FF |11 |20/01
CC |333 |31/07
DD |444 |10/04
EE |22 |20/01
today = 20/01/2011
我需要看到这个:
fname|lname|Tdate
FF |11 |20/01
EE |22 |20/01
AA |111 |03/08
BB |222 |18/01
CC |333 |31/07
DD |444 |10/04
怎么做?
提前致谢
答案 0 :(得分:3)
在查询结束时有类似的内容。
order by
case when cast(tdate as date) = cast(getdate() as date) THEN 1
else 0 end desc,
fname, lname
答案 1 :(得分:0)
SELECT FNAME,LNAME,TDATE,1 AS RANK FROM WHERE TDATE = GETDATE()
UNION
SELECT FNAME,LNAME,TDATE,2 AS RANK from WHERE TDATE<> GETDATE()
答案 2 :(得分:0)
ORDER BY
SIGN(ABS(DATEDIFF(day, Tdate, GETDATE()))),
Tdate