当前位置:首页 > 数据库 > Oracle技术

一个困惑人的有关问题,请问sql脚本如何写

优良自学吧提供一个困惑人的有关问题,请问sql脚本如何写,一个困惑人的问题,请教sql脚本怎么写表记录: 1002 100201 1002018523532 100201435X46413 100202 1002026335332 2001 200101 200102 我现在需要得到哪些节点是分支节点,哪些是叶子节点。实际上:1002,10

一个困惑人的问题,请教sql脚本怎么写
表记录:

1002
100201
1002018523532
100201435X46413
100202
1002026335332
2001
200101
200102


我现在需要得到哪些节点是分支节点,哪些是叶子节点。实际上:1002,100201,100202,2001是分支节点,其他都是叶子节点。可以肯定的是,同个父节点下的分支节点(非叶子节点)的长度是一样的。
------解决方案--------------------
引用:
表记录:

1002
100201
1002018523532
100201435X46413
100202
1002026335332
2001
200101
200102


我现在需要得到哪些节点是分支节点,哪些是叶子节点。实际上:1002,100201,100202,2001是分支节点,其他都是叶子节点。可以肯定的是,同个父节点下的分支节点(非叶子节点)的长度是一样的。

0--叶子节点
1--非叶子节点


with t as
 (select '1002' c1
    from dual
  union all
  select '100201' c1
    from dual
  union all
  select '1002018523532' c1
    from dual
  union all
  select '100201435X46413' c1
    from dual
  union all
  select '100202' c1
    from dual
  union all
  select '1002026335332' c1
    from dual
  union all
  select '2001' c1
    from dual
  union all
  select '200101' c1
    from dual
  union all
  select '200102' c1
    from dual)
select c1,
       decode((select count(*)
                from t t2
               where t2.c1 like t1.c1 
------解决方案--------------------
 '%'
                 and t2.c1 <> t1.c1),
              0,
              0,
              1)
  from t t1;

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢