【力扣白嫖日记】608.树节点

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

175.组合两个表

表:Person

列名 类型
id int
p_id varchar

树中的每个节点可以是以下三种类型之一:

"Leaf":节点是叶子节点。

"Root":节点是树的根节点。

"lnner":节点既不是叶子节点也不是根节点。

编写一个解决方案来报告树中每个节点的类型。

以 任意顺序 返回结果表。


我那不值一提的想法:

  • 首先梳理表内容,题干一共给了一张表,记录了树中节点id和父节点id。
  • 其次分析需求,需要编写一个方案报告树中的每个节点类型。
  • 在观察了表后,我发现节点有以下规律
  • 1.根节点,p_id是null,没有父节点
  • 2.内部节点,前面有根节点,后面有叶子节点
  • 3.叶子节点,有父节点,但是没有子节点
  • 用SQL写出来
  • 1.case when p_id is null then "root"
  • 2.p_id in (select p_id from Tree)
  • 3.除了上面两种情况就是叶子节点了
sql 复制代码
select id,
    case when p_id is null then "Root" 
    when id in (select p_id from Tree) then "Inner"
    else "Leaf"
    end as type
from Tree

结果:


总结:

能运行就行。


相关推荐
NCIN EXPE18 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台18 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路18 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家18 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE18 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow1218 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO18 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_7436239218 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python
pele18 小时前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python