【发布时间】:2013-04-08 16:36:00
【问题描述】:
我正在两个表之间进行连接并添加一个条件,希望只获得满足连接条件和“外部”条件的第一行。
这个查询例如:
select * from PRMPROFILE p, user v
where
p.id = v.profile
and p.language = 0
and v.userid like '%TEST%';
首先,我想知道如何使用配置文件(v.profile 或 p.id)对这个内部连接的结果进行分组。之后如何只显示每个组的第一次出现。
提前致谢。
【问题讨论】:
-
您能展示一些示例数据和预期结果吗?并且您需要定义使特定行成为“第一”匹配的原因。
-
“外部”条件是什么意思?您是否考虑过使用
and ROWNUM=1(see Oracle docs)?附录:这只会为您提供 1 个匹配结果,但在查询之间可能不一致。另请参阅ROWID。 -
“extern”条件是与加入条件不同的条件。连接不是显式的,它在 where 子句中需要一些条件。
标签: sql oracle select join group-by