根据某个组织id查找该组织下的末级组织的方法(SQL语句)

有表structure,字段tree_code(树形组织编码,格式 xxxx,xxxx-xxxx,xxxx-xxxx-xxxx-...,四位数字代表一个层级,相同层级数字递增排列,‘-’隔开代表上下层级),stru_id(组织id),org_name(组织姓名)

由于ls_leaf字段未维护,需求:需要查询某个组织的叶子组织时,下图是实现方法之一

SELECT t.* 
FROM 
  (SELECT ps.tree_code,ps.stru_id,ps.org_name,
       ( CASE WHEN EXISTS
          (SELECT 1 FROM structure ps1 WHERE ps1.tree_code LIKE CONCAT(ps.tree_code,'-%'))
       THEN '0' ELSE '1' END) ls_leaf
  FROM structure ps
  WHERE  ps.tree_code like CONCAT('某个组织id','%') 
) t
WHERE t.ls_leaf='1'
++a
发布了13 篇原创文章 · 获赞 0 · 访问量 1093

猜你喜欢

转载自blog.csdn.net/qq_40881607/article/details/105018697