【发布时间】:2012-09-21 10:11:42
【问题描述】:
假设,一个选择操作给出了 3 列:col1、col2 和 col3。 col2 和 col3 是时间类型。我希望结果按时间戳排序。对于每条记录,如果 col3 不为空,则时间戳等于 col3,否则为 col2。如何做到这一点?
【问题讨论】:
标签: mysql
假设,一个选择操作给出了 3 列:col1、col2 和 col3。 col2 和 col3 是时间类型。我希望结果按时间戳排序。对于每条记录,如果 col3 不为空,则时间戳等于 col3,否则为 col2。如何做到这一点?
【问题讨论】:
标签: mysql
【讨论】:
您可以使用子查询来做到这一点。在内部查询中,您检查 col3 是否为 NULL,然后“选择”col3 或 col2 作为“my_time”。然后,在外部查询中,您按“my_time”排序。
子查询示例:
SELECT <whatever>, IF (col3 IS NOT NULL, col3, col2) AS my_time FROM <table>
然后,外部查询:
SELECT * FROM (
SELECT <whatever>, IF (col3 IS NOT NULL, col3, col2) AS my_time FROM <table>
) AS <temp_table> ORDER BY <temp_table>.my_time
【讨论】: