Oracle是否使用SQL Server或Sybase等中间结果集? 选择LASTNAME、STATE、COUNT(*) 从测试 州在('NY','NJ','CA'中的位置) 按州分组,姓氏 计数(*)大于1;

Oracle是否使用SQL Server或Sybase等中间结果集? 选择LASTNAME、STATE、COUNT(*) 从测试 州在('NY','NJ','CA'中的位置) 按州分组,姓氏 计数(*)大于1;,oracle,Oracle,MS SQL server和Sybase中用于内部处理的类似查询如下: 在应用子句并生成结果集(内部表)的测试表上,然后应用group by并生成另一个内部结果集,最后应用Having并向用户显示最终结果集 Oracle是否也使用resultset方法,还是有什么不同 顺便说一句,我试着在谷歌上搜索,查看了Oracle文档,却找不到我想要的详细信息。Sybase文档对这些事情非常清楚 在这种情况下,您可以依靠Oracle来具体化结果集。当然,检查一下计划。我打赌你会找到一个哈希组,然后在顶部找到

MS SQL server和Sybase中用于内部处理的类似查询如下:

在应用子句并生成结果集(内部表)的测试表上,然后应用group by并生成另一个内部结果集,最后应用Having并向用户显示最终结果集

Oracle是否也使用resultset方法,还是有什么不同


顺便说一句,我试着在谷歌上搜索,查看了Oracle文档,却找不到我想要的详细信息。Sybase文档对这些事情非常清楚

在这种情况下,您可以依靠Oracle来具体化结果集。当然,检查一下计划。我打赌你会找到一个哈希组,然后在顶部找到一个过滤操作


您的案例可能有一些罕见的变化,可以通过遍历适当的索引来解决,以避免中间结果集,但我从未在执行计划中遇到过它。

您在寻找查询计划吗?如果是这样,下面是我知道如何获取查询计划的示例。我只是想简单解释一下oracle是使用resultsets(中间表)来获得最终结果集,还是使用其他方法。我想这是一种新方法……请您在Sybase文档中告诉我您在寻找什么?请查看第244页。虽然这是Sybase 9,但这是我使用最多的。 SELECT LASTNAME, STATE, COUNT(*) FROM TEST WHERE STATE IN ('NY','NJ','CA') GROUP BY STATE,LASTNAME HAVING COUNT(*)>1;