一个开始时间和一个结束时间,查询结果是:结束时间大于当前时间开始显现,当结束时间小于当前时间时的在后边显示,结束时间大于当前时间的按发布时间正序排列
不是这样
一个开始时间和一个结束时间,查询结果是:结束时间大于当前时间开始显现,当结束时间小于当前时间时的在后边显示,结束时间大于当前时间的按发布时间正序排列
你可以用类似如下的方法
select * from table1 order by case when date1 > date2 then date3 else 其它排序字段 end
这个按desc排序还是出错啊
追答把你的语句贴出来看看
追问select Id,PAddtime,PEndtime from T_Table order by case when PEndtime>Getdate() then PAddtime else PEndtime end
这样查出来,PAddtime再按desc排序就对了,可是不知道怎么写,麻烦你了
在最後end 後面加个desc
select Id,PAddtime,PEndtime from T_Table order by case when PEndtime>Getdate() then PAddtime else PEndtime end desc
也不对,这样查询出来是按PEndtime 时间desc,我要的是如果pendtime大于当前时间的是按PaddTimedesc,pendtime小于当前时间的在大于当前时间的后边显示
追答那这样
select Id,PAddtime,PEndtime from T_Table order by case when PEndtime>Getdate() then PAddtime else '1900/1/1' end desc
那Pendtime小于当前时间的也按desc排序,怎样整啊,上边这条只能是Pendtime大于当前时间的按desc排序
追答可以这样
select paddtime,pendtime from T_Table
order by case when pendtime > Getdate() then PAddtime end desc,case when pendtime < GETDATE() then paddtime end desc;