前述
知识点推荐学习:
sql中的 IF 条件语句的用法
MySQL:if语句、if…else语句、case语句,使用方法解析
题目描述
leetcode 题目:608. 树节点
思路
关键点:如何确定有没有子节点
- 根节点:父节点为空
- 内节点:所有p_id集合中有该id
- 叶子节点:是其余的
方法一:CASE语句
select
B.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;