You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL判断数据表中的父节点与叶子节点?

用SQL判断节点是否为父节点的实现方案

核心思路很直接:检查当前行的Number值是否在整个表的Parent列中出现过——如果出现过,说明它是其他节点的父节点;没出现过就是叶子节点。

你可以用CASE语句结合EXISTS子查询来实现,具体SQL代码如下(假设你的表名为tree_nodes,如果表名不同,替换成实际名称即可):

SELECT 
  Number,
  Parent,
  CASE
    WHEN EXISTS (SELECT 1 FROM tree_nodes WHERE Parent = t.Number) THEN 'Parent'
    ELSE 'Not Parent'
  END AS NodeLabel
FROM tree_nodes t;

代码细节解释:

  • EXISTS (SELECT 1 FROM tree_nodes WHERE Parent = t.Number):这个子查询会快速检查当前行的Number是否存在于其他行的Parent字段里,只要有匹配就返回TRUE,效率很高。
  • CASE语句:根据EXISTS的结果返回对应标签——满足条件返回Parent,否则返回Not Parent。
  • 别名t:给主查询的表起别名,避免子查询和主查询的表名冲突,这是SQL里的常用写法。

对应示例数据的执行结果:

运行这条SQL后,会得到完全符合你需求的输出:

NumberParentNodeLabel
1NULLParent
21Parent
32Not Parent

内容的提问来源于stack exchange,提问作者emekadavid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:40:31