前述
知识点推荐学习:
sql中的 IF 条件语句的用法
MySQL:if语句、if…else语句、case语句,使用方法解析
题目描述
leetcode 题目:608. 树节点
思路
关键点:如何确定有没有子节点
- 根节点:父节点为空
- 内节点:所有p_id集合中有该id
- 叶子节点:是其余的
方法一:CASE语句
selectB.id,CASE WHEN B.p_id IS NULL THEN 'Root'WHEN B.id in (select distinct A.p_id from Tree A) THEN 'Inner'ELSE 'Leaf'END AS type
from Tree B-- note: CASE when A then B
-- when C then D
-- else F
-- end; # 只有一个case,不是每个when都要带个case...
方法二:IF语句
select B.id,IF(ISNULL(B.p_id),'Root',IF(B.id in (select A.p_id from Tree A), 'Inner', 'Leaf')) AS type
from Tree B;