前述
知識點推薦學習:
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;