假设,一个选择操作给出了 3 列:col1、col2 和 col3。col2 和 col3 是时间类型。我希望结果按时间戳排序。对于每条记录,如果 col3 不为空,则时间戳等于 col3,否则为 col2。这该怎么做?
问问题
158 次
2 回答
2
于 2012-09-21T11:30:38.703 回答
1
您可以使用子查询来做到这一点。在内部查询中,您检查 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
于 2012-09-21T10:49:33.873 回答