【发布时间】:2017-04-08 02:22:21
【问题描述】:
我需要生成一组行,其中每一行都是复杂选择的结果,并且每个选择都基于另一个列表中的值。
换句话说,我需要执行如下任务:
select * from (
select col1, col2, col3 from data_table where guid=my_guid
order by col1)
where rownum<=1
除了我需要对取自另一个表的my_guid 值序列执行此操作,并获得适合从中选择的结果的联合。
简单地说where guid in (select * from guid_list) 将只产生一个结果,因为rownum,但我想要与每个guid 关联的排名靠前的行。
我在弄清楚正确的方法是什么时遇到了一些麻烦。
在带有返回第一个结果的聚合器的 SQL 变体中,我可以这样做:
select col1, first(col2), first(col3) from data_table
order by col1 group by guid
在调试时,我没有对数据库的写入权限,所以我想避免涉及创建临时表、过程或函数的解决方案。
【问题讨论】: