【问题标题】:nested PLSQL in a tabular form以表格形式嵌套 PLSQL
【发布时间】:2012-05-01 03:15:05
【问题描述】:

我正在尝试实现以下结果(第一行是标题)

Level 1    | Level 2     |  Level 3 |   Level 4   | Person
Technicals | Development | Software | Team leader | Eric
Technicals | Development | Software | Team leader | Steven
Technicals | Development | Software | Team leader | Jana

我该怎么做?我尝试使用以下代码。第一部分是创建工作正常的层次结构。第二部分是有上面提到的表格中的日期是一件相当痛苦的事情。

SELECT * FROM (  /* level2 */ 
   SELECT * FROM (  /* level1 */
          SELECT * FROM arc.localnode   /*create hierarchy */
                 WHERE tree_id = 2408362  
                 CONNECT BY PRIOR node_id = parent_id
                 START WITH parent_id IS NULL ) l1node
          LEFT JOIN names on l1node.prent_id  = names.name_id ) l2node

在这一点上,我很迷茫。一点指导和建议会很有帮助:-)

有两张桌子。第一个表有这样的数据:

NODE_ID | PREV_ID  | NEXT_ID |  PARENT_ID 
1421864             3482917 1421768         
3482981 3482917     1421866 1421768     
3482911 3060402     3482913 1421768         
3482917 1421864     3482981 1421768     

这很复杂,因为它处于层次结构中。所以很明显,一个 PARENT_ID 可以是其他一些 PARENT_ID 的 NODE_ID。同样,parent_ID 可以是 PREV_ID 和 NEXT_ID。

名称与 name_id 位于单独的表中。该表中的名称ID类似于层次结构中主表的NODE_ID。

【问题讨论】:

  • 你的表结构和数据是什么样的?这将有助于开发必要的查询。
  • 更好,但仍不完全清楚。你看过CONNECT_BY_ROOT吗?我想这可能就是你要找的那块。
  • 我猜如果您只处理一张表,CONNECT_BY_ROOT 就可以工作。这里我有两张桌子,这让事情有点棘手
  • 你展示一个完整的例子怎么样?给出两个表中的数据和预期的结果。说明您尝试过的内容、遇到的问题以及缺少的内容。
  • 我在这里上传了文件: www.thebombercommand.info/misc/names.sql(名称表) www.thebombercommand.info/misc/codes.sql(代码表) 他们有数据也是。

标签: oracle oracle10g oracle9i plsqldeveloper


【解决方案1】:

您可以在以下链接中使用 AskTom 中提到的 Stragg 包

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2196162600402

您也可以参考oracle论坛中的以下链接

https://forums.oracle.com/forums/thread.jspa?threadID=2258996

请根据您的要求发布创建和插入语句,以便我们对其进行测试和确认

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 2011-04-27
    • 1970-01-01
    • 2021-04-09
    • 2013-01-19
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多