SQL查询 - 对集合中列值的条件

时间:2015-04-06 17:06:24

标签: sql oracle

我需要查询类似这样的内容

SELECT * WHERE (ORDER_ID='AAA' or ORDER_ID='BBB');

我注意到它比运行

慢得多
SELECT * WHERE ORDER_ID='AAA';
SELECT * WHERE ORDER_ID='BBB';

Seperately。有原因吗?这是最快的方式吗?

我在想,字符串比较应该是微不足道的。我没有必要将查询发送到服务器两次。第一个查询应该更快。

我正在使用Oracle SQL。

1 个答案:

答案 0 :(得分:0)

他的意思是当你使用WHERE(cond1或cond2)时,它会被Oracle DB自动扩展到另一个查询中。根据执行计划,Oracle可能会决定将其作为UNION或UNION ALL处理。您可以使用explain查看您的查询是如何展开的。 Docs