场景:根据父菜单序号查询出包含其自己的所有子菜单列表,希望用一个sql语句来实现。

从问题场景我们大致可以确定这个需要进行递归一层层的查询,幸好oracle里面提供了一个with关键词可以帮助我们来实现这个功能。

目前为止我对此关键词研究也不是很深,先记录下我的问题解决方法,日后有时间再把博文补全。

with TEMP(xh,
fcdxh,
cdmc) AS
 (SELECT xh, fcdxh, cdmc
    FROM T_ADMIN_RMS_CD
   WHERE CDMC LIKE '%我的环保%'
  UNION ALL
  SELECT CD2.xh, CD2.fcdxh, CD2.cdmc
    FROM T_ADMIN_RMS_CD CD2
   INNER JOIN TEMP
      ON CD2.FCDXH = TEMP.XH)
select * from TEMP

查询结果:

oracle的with递归查询菜单树



作者:星辰 时间:2016-10-05 浏览 840评论 0 赞 0砸 0 标签: oracle
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款