Oracle 需要查询中的rowid
我正在尝试从查询中获取rowid。我的问题是: 表:测试(个人编号、资产编号) 查询:Oracle 需要查询中的rowid,oracle,oracle11g,Oracle,Oracle11g,我正在尝试从查询中获取rowid。我的问题是: 表:测试(个人编号、资产编号) 查询: with abc as( select personid , row_number() over(partition by personid order by personid,carid) rnk from test --group by personid,carid,rowid ) select rowid, abc.* from abc ; 以及
with abc as(
select
personid ,
row_number() over(partition by personid order by personid,carid) rnk
from test
--group by personid,carid,rowid
)
select rowid, abc.* from abc ;
以及它的投掷错误
ORA-01446: cannot select ROWID from,or sample,a view with DISTINCT,GROUP BY etc
是否有任何方法可以获取rowid(通过这种方式),或者不允许使用我在Oracle中尝试的方式获取rowid。有人能在这里发表一些看法吗。谢谢。尝试在with子查询中包含rowid(我使用了别名)
尝试在with子查询中包含rowid(我使用了别名)
使用
groupby
和ROWID
不会聚合行,因为ROWID
是唯一的,因此每个组的大小始终为1
您只需执行以下操作:
SELECT personid,
ROW_NUMBER() OVER ( PARTITION BY personid ORDER BY carid ) AS rnk,
ROWID
FROM test;
使用
groupby
和ROWID
不会聚合行,因为ROWID
是唯一的,因此每个组的大小始终为1
您只需执行以下操作:
SELECT personid,
ROW_NUMBER() OVER ( PARTITION BY personid ORDER BY carid ) AS rnk,
ROWID
FROM test;
这对我来说毫无意义。你为什么认为你需要ROWID?如果您没有在内部查询中聚合,为什么要使用
分组依据
?您可以看到为什么我需要这个答案中的分组依据
是完全无用的。在我使用它的地方是有意义的。请检查。但它完全没有实现任何功能<代码>按行ID分组将返回与不分组完全相同的结果。这对我来说没有意义。你为什么认为你需要ROWID?如果您没有在内部查询中聚合,为什么要使用分组依据
?您可以看到为什么我需要这个答案中的分组依据
是完全无用的。在我使用它的地方是有意义的。请检查。但它完全没有实现任何功能group by rowid
将返回与不分组完全相同的结果。