SELECT *
FROM info
ORDER BY
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())=0
THEN grade ELSE NULL END DESC,
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())=0
THEN publictime ELSE NULL END DESC,
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())>0
THEN publictime ELSE NULL END DESC??这样?.
FROM info
ORDER BY
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())=0
THEN grade ELSE NULL END DESC,
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())=0
THEN publictime ELSE NULL END DESC,
CASE
WHEN DATEDIFF(DAY,publictime,GETDATE())>0
THEN publictime ELSE NULL END DESC??这样?.
解决方案 »
- 求一条子查询语句,先答先得分
- sql server更改服务器名称
- 权限管理:用户可以创建数据表,并对自己创建的数据表有完全控制权,而对其它数据表只读。如何做?
- 有的SQL Server数据库,数据文件和日志文件的扩展名不是mdf和ldf,而都是.dat,这是怎么回事?
- @Data = GetDate() 得到的时间格式 09 14 2005 11:05AM ,但是我希望时间格式是2005-9-12 17:21:39,请问该怎么样做?
- 各位大哥,帮忙,困难问题(等待中)
- select not in不行,select in 行
- 两表匹配更新的问题
- 所有类型都以字符串写入数据库吗?
- 有兩個有關SQL Server的小問題,請教各位大蝦.
- 求SQL语句--查找单字段相同记录
- SQL SERVER SP4问题
select * from info
order by
case when datediff(d,publictime,getdate())=0 then 0 else 1 end,grade desc,publictime desc
前面部分是对的,后面部分不对.
SELECT * FROM info order by case when DATEDIFF(d, publictime, GETDATE()) = 0 then grade else 0 end desc,publictime desc
2 标题2 b 3 2008-10-13 9:20:50
4 标题4 d 3 2008-10-13 8:10:50
8 标题8 h 2 2008-10-13 18:15:50
3 标题3 c 2 2008-10-13 10:25:50
1 标题1 a 1 2008-10-13 17:20:50
5 标题5 e 3 2008-10-12 10:15:50
7 标题7 g 2 2008-10-12 11:15:50
6 标题6 f 1 2008-10-12 13:20:50
后面一部分排序不对..
SELECT * into #a FROM info WHERE (DATEDIFF(d, publictime, GETDATE()) = 0) Order by grade desc,publictime descSELECT * into #b FROM info WHERE (DATEDIFF(d, publictime, GETDATE()) > 0) Order by publictime descselect * from #a union all select *from #b用这个试了一下,结果撞上了,呵呵
liangCK
roy_88
是对的,josy也对喽,用的临时表倒可以,我直接用union不行,不过,代码最快最简洁应该是三楼的roy_88
我分数,随便意思了一下,别嫌少啊..两位兄弟..
不对,三位都同时谢一下,呵呵.
当为今天的时候,grade desc,publictime desc
else 0
那不是 0 desc,publictime desc不是要出错了.
SELECT * FROM info order by case when DATEDIFF(d, publictime, GETDATE()) = 0 then grade else 0 end desc,publictime desc是对的,而
SELECT * FROM info order by case when DATEDIFF(d, publictime, GETDATE()) = 0 then grade else 1 end desc,publictime desc
结果也是对的,怎么理解????