我有几个表(都在同一个模式中),它们有一个名为UPLOAD_TIME的列。我试图找到每个表的最小UPLOAD_TIME。
我可以查询SELECT MIN(UPLOAD_TIME) FROM (each_table)
。但是有没有更快的方法呢?
现在我们先看两张table:
- LASER_VISION_VERIFICATIONS(最短上传时间为2020年11月24日)
- MACHINE_RNR_RECORDS(最短上传时间为2019年2月12日)
我可以得到这样的结果表吗?:
| MIN(MACHINE_RNR_RECORDS.UPLOAD_TIME)| MIN(MACHINE_RNR_RECORDS.UPLOAD_TIME) |
| --| ------------ |
| 2019年2月12日| 12FEB2019 |
2条答案
按热度按时间fkvaft9z1#
您可以合并到单个查询中:
字符串
但这并不会比对每个表运行独立查询快得多。唯一的优点是共享解析和更少的网络往返,这在这种情况下是无关紧要的。如果您关心速度,您将需要确保
upload_time
在每个表中都被索引。缺点是它不适合扩展性-如果添加表,则必须修改查询。如果你的表列表可能会随着时间的推移而增长,你最好使用PL/SQL脚本和循环:型
现在查询它:
型
如果添加或删除更多表,则无需修改代码。您还可以将此方法用于不同的日期列,这样就可以在不修改代码的情况下更改列名。
ctzwtxfj2#
为此,您需要使用动态SQL
字符串