关于什么:
SELECT time_value
FROM (SELECT MIN(time_column) AS time_value FROM SomeTable
UNION
SELECT MAX(time_column) AS time_value FROM SomeTable
)
ORDER BY time_value DESC;
Run Code Online (Sandbox Code Playgroud)
除非SomeTable中没有行(或者您的DBMS不支持表示法),否则应该完成这项工作.
在评论中简化每个建议 - 谢谢!
SELECT MIN(time_column) AS time_value FROM SomeTable
UNION
SELECT MAX(time_column) AS time_value FROM SomeTable
ORDER BY time_value DESC;
Run Code Online (Sandbox Code Playgroud)
如果您可以从一个查询中获取两个值,则可以使用以下方法提高查询的性能:
SELECT MIN(time_column) AS min_time,
MAX(time_column) AS max_time
FROM SomeTable;
Run Code Online (Sandbox Code Playgroud)
一个非常好的优化器可能能够在一次通过数据(或索引)的情况下处理UNION版本的两半,但很容易想象优化器分别处理UNION的每一半并处理数据两次.如果时间列上没有索引可以加快速度,那么可能涉及两次表扫描,这对于双值一行查询比单个表扫描要慢得多(如果表足够大,那么重要的事情).