Select Tree Node
这里用到了Oracle的一个树形结构查询函数select *  from record START WITH A.TREE_NODE IN ('COST_CTR_10053')
CONNECT BY PRIOR A.TREE_NODE_NUM = A.PARENT_NODE_NUM.查出指定节点下的所以子节点然后连接leaf表,选出所有的叶子。
/* Formatted on 11/7/2015 11:05:57 PM (QP5 v5.267.14150.38573) */
SELECT B.RANGE_FROM
  FROM PSTREELEAF B,
       (    SELECT DISTINCT A.SETID,
                            A.SETCNTRLVALUE,
                            A.TREE_NAME,
                            A.EFFDT,
                            A.TREE_NODE_NUM
              FROM PSTREENODE A,
                   (SELECT A.SETID,
                           A.SETCNTRLVALUE,
                           A.TREE_NAME,
                           A.EFFDT
                      FROM PSTREEDEFN A
                     WHERE     A.SETID = 'SHARE'
                           AND A.SETCNTRLVALUE = ' '
                           AND A.TREE_NAME = 'PLD_LOC_COMBO'
                           AND A.EFFDT =
                                  (SELECT MAX (B.EFFDT)
                                     FROM PSTREEDEFN B
                                    WHERE     A.SETID = B.SETID
                                          AND A.SETCNTRLVALUE = B.SETCNTRLVALUE
                                          AND A.TREE_NAME = B.TREE_NAME
                                          AND B.EFF_STATUS = 'A'
                                          AND B.EFFDT <= SYSDATE)) DEFN
             WHERE     A.SETID = DEFN.SETID
                   AND A.SETCNTRLVALUE = DEFN.SETCNTRLVALUE
                   AND A.TREE_NAME = DEFN.TREE_NAME
                   AND A.EFFDT = DEFN.EFFDT
        START WITH A.TREE_NODE IN ('COST_CTR_10053')
        CONNECT BY PRIOR A.TREE_NODE_NUM = A.PARENT_NODE_NUM) SA
 WHERE     SA.SETID = B.SETID
       AND SA.SETCNTRLVALUE = B.SETCNTRLVALUE
       AND SA.TREE_NAME = B.TREE_NAME
       AND SA.EFFDT = B.EFFDT
       AND SA.TREE_NODE_NUM = B.TREE_NODE_NUM
************************************************************************************************************************************************
SELECT P2.*
FROM 
  (SELECT A.SETID , 
          A.SETCNTRLVALUE , 
          A.TREE_NAME , 
          A.EFFDT 
   FROM PSTREEDEFN A 
   WHERE A.SETID = 'SHARE' 
     AND A.SETCNTRLVALUE = ' ' 
     AND A.TREE_NAME = 'PLD_LOC_COMBO' 
     AND A.EFFDT = 
       (SELECT MAX (B.EFFDT) 
        FROM PSTREEDEFN B 
        WHERE A.SETID = B.SETID 
          AND A.SETCNTRLVALUE = B.SETCNTRLVALUE 
          AND A.TREE_NAME = B.TREE_NAME 
          AND B.EFF_STATUS = 'A' 
          AND B.EFFDT <= SYSDATE)) P, 
                                   PSTREENODE P1 , 
                                   PSTREELEAF P2 
WHERE P1.SETID = P.SETID 
  AND P1.SETCNTRLVALUE = P.SETCNTRLVALUE 
  AND P1.TREE_NAME = P.TREE_NAME 
  AND P1.EFFDT = P.EFFDT 
  AND P1.TREE_NODE = 'COST_CTR_10053' 
  AND P2.SETID = P1.SETID 
  AND P2.SETCNTRLVALUE = P1.SETCNTRLVALUE 
  AND P2.TREE_NAME = P1.TREE_NAME 
  AND P2.EFFDT = P1.EFFDT 
 -- AND P2.TREE_NODE_NUM BETWEEN P1.TREE_NODE_NUM AND P1.TREE_NODE_NUM_END 
  AND P2.TREE_NODE_NUM = P1.TREE_NODE_NUM
AND (
  ( NVL(LENGTH(REPLACE(TRANSLATE('143','0123456789.',' '),' ','')), 0) <> 0 AND '143' BETWEEN P2.RANGE_FROM AND P2.RANGE_TO) 
       OR 
       ( NVL(LENGTH(REPLACE(TRANSLATE('143','0123456789.',' '),' ','')), 0) = 0  AND '143' BETWEEN P2.RANGE_FROM AND P2.RANGE_TO  AND LENGTH('143') BETWEEN LENGTH(P2.RANGE_FROM) AND LENGTH(P2.RANGE_TO))
            )
Select Tree Node的更多相关文章
- [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)
		结点: 包括一个数据元素及若干个指向其它子树的分支:例如,A,B,C,D等. 在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点. 在C语言 ... 
- Data Structure Binary Tree: Print ancestors of a given binary tree node without recursion
		http://www.geeksforgeeks.org/print-ancestors-of-a-given-binary-tree-node-without-recursion/ #include ... 
- Python 解LeetCode:671. Second Minimum Node In a Binary Tree
		题目在这里,要求一个二叉树的倒数第二个小的值.二叉树的特点是父节点的值会小于子节点的值,父节点要么没有子节点,要不左右孩子节点都有. 分析一下,根据定义,跟节点的值肯定是二叉树中最小的值,剩下的只需要 ... 
- 【easy】671. Second Minimum Node In a Binary Tree
		Given a non-empty special binary tree consisting of nodes with the non-negative value, where each no ... 
- [Swift]LeetCode671. 二叉树中第二小的节点 | Second Minimum Node In a Binary Tree
		Given a non-empty special binary tree consisting of nodes with the non-negative value, where each no ... 
- LeetCode算法题-Second Minimum Node In a Binary Tree(Java实现)
		这是悦乐书的第285次更新,第302篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第153题(顺位题号是671).给定非空的特殊二叉树,其由具有非负值的节点组成,其中该树 ... 
- [LeetCode&Python] Problem 671. Second Minimum Node In a Binary Tree
		Given a non-empty special binary tree consisting of nodes with the non-negative value, where each no ... 
- 671. Second Minimum Node In a Binary Tree
		/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ... 
- Lintcode: Insert Node in a Binary Search Tree
		Given a binary search tree and a new tree node, insert the node into the tree. You should keep the t ... 
随机推荐
- mysql导入数据到oracle中
			mysql导入数据到oracle中. 建立Oracle表: CREATE TABLE "GG_USER" ( "USERID" BYTE) NOT NULL, ... 
- package.json 字段全解析
			Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ... 
- Android入门(十):界面的布局方式及其实际应用
			关于Android界面布局,网上已经有了很多非常不错的学习资料,在这里我也不班门弄斧了,推荐两篇我认为写的不错的教程,然后再重点讲一下几种布局方式的实际应用. 教程链接:①http://www.cnb ... 
- [转载]Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
			配置文件下载 http://vdisk.weibo.com/s/DOlfks4wpIj LiveReload安装前的准备工作: 安装Node.js和Grunt,如果第一次接触,可以参考:Window ... 
- YACC和BISON学习心得
			最近学习了YACC和BISON两个工具,参考书籍<YACC和BISON>,通过里面的例子,明白了如何编写自己的解释性语言. 
- linux常用命令(一)
			1.linux文件命名规则 1.除了/之外,所有字符都是可以用的. 2.有些字符最好别用,如空格,制表符,退格,@#&-,命令行操作时候可能会出现混淆. 3.避免使用.作为文件开头,linux ... 
- Android课程---优化ListView列表视图(2)
			layout_simple.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ... 
- PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别   有点像static 和 self的意思 !
			PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 通常情况下,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 都会返回 PHP ... 
- /etc/sudoers文件损坏修复
			1. 重启(开机)时按Shift键(这时就会进入grub模式) 选择第二项 进入高级选项 
- Yii源码阅读笔记(三十二)
			web/Application类的注释,继承base/Application类,针对web应用的一些处理: namespace yii\web; use Yii; use yii\base\Inval ... 
