是否可以按日期订购,如果没有指定日期按时间排序,如果时间大于日期,那么它将首先在列表中。 例如,我们得到了表 -
id date time name
1 18.10.2011 18.10.2011 number
2 --------- 19.10.2011 number2
3 --------- 18.10.2011 number3
它应该订购这样的东西 -
1 number2
2 number
3 number3
所有数据都以time()
格式保存在数据库中,因此如果时间和日期相等,则会查看时钟。希望你能理解我。
答案 0 :(得分:3)
尝试:
select id, date, time, name
from MyTable
order by greatest(time,coalesce(date,time))
(其中一些列名可能是保留字 - 我希望这是一个简化的例子!)
答案 1 :(得分:2)
您可以尝试使用ORDER BY CASE
。这是未经测试的,但应该让您走上正确的轨道:
ORDER BY CASE
WHEN date IS NOT NULL AND time < date THEN date
WHEN time > date OR date IS NULL THEN time
ELSE time
END
实际上,这里可能不需要ELSE time
。前两个案例应该涵盖它。