有表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'