首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle how to keep order in a hierarchical view when using 'in‘condition子句

Oracle how to keep order in a hierarchical view when using 'in‘condition子句
EN

Stack Overflow用户
提问于 2017-12-22 09:56:07
回答 1查看 210关注 0票数 0

在Oracle中,给出了一个由connect by提供支持的分层视图V,它可以表示一个已经按某种逻辑对同级进行排序的分层查询。

如果对V执行查询,如下所示:

代码语言:javascript
复制
select * from V where key_column in (any subquery may return key_columns in a different order)

我们如何在视图V中保持原始顺序?

我知道我可以添加一个rownum列到视图中,然后按它排序,但是我在sql中寻找一个方法,我不想改变视图的结构。

视图:

代码语言:javascript
复制
CREATE or replace VIEW
    CWE_DICT_TREE_VIEW
    AS
SELECT
    SUBSTR (SYS_CONNECT_BY_PATH (a.node_id, '.'), 2)   AS id_path,
    SUBSTR (SYS_CONNECT_BY_PATH (a.entry_key, '.'), 2) AS key_path,
    getdictname(parent_node)                           AS parent_entry_value,
    LEVEL                                              AS node_level,
    CONNECT_BY_ISLEAF                                  AS node_is_leaf,
    a.*
FROM
    cwe_dict a START WITH a.parent_node IS NULL CONNECT BY PRIOR a.node_id = a.parent_node ORDER
    SIBLINGS BY a.inline_sort_no;

查询:

代码语言:javascript
复制
select NODE_ID , PARENT_NODE , ENTRY_VALUE , NODE_IS_LEAF , INLINE_SORT_NO , NODE_LEVEL , ENTRY_KEY
from CWE_DICT_TREE_VIEW where NODE_ID in ( 
    with link(NODE_ID,PARENT_NODE) AS ( 
        select NODE_ID,PARENT_NODE from CWE_DICT_TREE_VIEW WHERE ( ENTRY_VALUE like '%农%') or( ENTRY_KEY like '%农%' ) 
        union all 
        select P2.NODE_ID, P2.PARENT_NODE from LINK P1  inner join CWE_DICT_TREE_VIEW P2 on P2.NODE_ID = P1.PARENT_NODE
    ) 
    select distinct NODE_ID from LINK 
 )
EN

回答 1

Stack Overflow用户

发布于 2017-12-22 10:20:49

如何才能保持视图V中的原始顺序?

您对表和关系数据库有很深的误解。表表示无序集合。表中没有“原始顺序”。唯一的排序是您在查询中指定的排序。

表通常具有提供“自然排序”的"id“类型的主键。只需在order by中包含此列即可。假设它是key_column

代码语言:javascript
复制
select *
from V
where key_column in (any subquery may return key_columns in a different order)
order by key_column;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47934976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档