帮助SQL查询 - 在桌面上显示今天的生日

时间:2011-01-20 18:19:47

标签: sql-server-2008

我在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

怎么做?

提前致谢

3 个答案:

答案 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