最大和最小时间查询

Sha*_*nks 2 vb6 vba ms-jet-ace

如何使用vb6显示第一行中的最大时间和第二行中的最小时间以进行访问

Jon*_*ler 5

关于什么:

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的每一半并处理数据两次.如果时间列上没有索引可以加快速度,那么可能涉及两次表扫描,这对于双值一行查询比单个表扫描要慢得多(如果表足够大,那么重要的事情).

  • 为什么要打扰外部查询?`SELECT MAX ... UNION ... SELECT MIN ...`应该做的技巧和顺序下降. (3认同)