【问题标题】:Oracle: Create a View with Auto Increment id columnOracle:使用自动增量 id 列创建视图
【发布时间】:2012-12-23 03:16:33
【问题描述】:

我创建了一个view 来填充来自不同表的数据。我使用10 select statements 并使用UNION ALL 组合这些选择语句的结果。

我想将primary key column 添加到我的视图中。因为我必须使用view 中的数据创建XML 文件。所以我的XML 构建应用程序中的某些过程需要primary key column

我已将rownum 添加到我的所有选择语句中。但它返回了重复的 ID。因为rownum在每个select语句中都是从1开始的。

然后我创建了一个序列并尝试使用 nextval 。但我不能使用序列,因为我的选择语句有group byorder by

有什么办法吗?

【问题讨论】:

    标签: oracle view plsql oracle11g


    【解决方案1】:

    您可以对联合进行选择,例如:

    SELECT rownum(),*
    FROM (SELECT * FROM tableA UNION ALL SELECT * FROM tableB)
    

    更新

    SELECT rownum, t.*
    FROM (SELECT * FROM tableA UNION ALL SELECT * FROM tableB) t
    

    【讨论】:

    • 我遇到了一个错误。 ORA-00923: FROM keyword not found where expected
    • 你放星号了吗?你应该把你的列名,我只是举个例子。
    • 我输入了列名。它在没有rownum() 的情况下工作。添加rownum()时,出现错误。
    • @Bishan,这些是小的语法错误,试试-select rownum, t.* from (select ... union all select ...) t
    • @A.B.Cade 如果添加新记录,现有记录的 rownum 会改变吗?
    猜你喜欢
    • 2013-07-27
    • 1970-01-01
    • 2011-02-18
    • 2018-11-10
    • 2014-05-25
    • 2022-09-29
    • 2012-02-01
    • 2023-03-15
    • 2023-04-03
    相关资源
    最近更新 更多