从 table 中获取最后一个父名称
Get the last parent name from a table
我的目标是获取每个级别行的顶部名称和 levelid。
如下图,在第一行的top_level_name栏填写:"(103432,'282 ..."
在第二行,top_level_name应该是:"Corrrea CV-130"
在 6: "146"
等等...
我该怎么做?
我把这个 table 命名为 "level"
还有一个叫 "rootlevel":
level parentid 列是child levelid。
您可以将查询作为 table 表达式来预先计算联接,然后使用 CASE
子句查找顶级名称。
例如:
select *,
case when "level7.name" is not null then "level7.name"
when "level6.name" is not null then "level6.name"
when "level5.name" is not null then "level5.name"
when "level4.name" is not null then "level4.name"
when "level3.name" is not null then "level3.name"
when "level2.name" is not null then "level2.name"
when "level.name" is not null then "level.name"
end as top_level_name
from (
-- your select here
) x
我的目标是获取每个级别行的顶部名称和 levelid。
如下图,在第一行的top_level_name栏填写:"(103432,'282 ..."
在第二行,top_level_name应该是:"Corrrea CV-130"
在 6: "146"
等等...
我该怎么做?
我把这个 table 命名为 "level"
还有一个叫 "rootlevel":
level parentid 列是child levelid。
您可以将查询作为 table 表达式来预先计算联接,然后使用 CASE
子句查找顶级名称。
例如:
select *,
case when "level7.name" is not null then "level7.name"
when "level6.name" is not null then "level6.name"
when "level5.name" is not null then "level5.name"
when "level4.name" is not null then "level4.name"
when "level3.name" is not null then "level3.name"
when "level2.name" is not null then "level2.name"
when "level.name" is not null then "level.name"
end as top_level_name
from (
-- your select here
) x