Получить последнее родительское имя из таблицы - PullRequest
0 голосов
/ 26 февраля 2020

Моя цель - получить имя и уровень каждого ряда уровня.

Как и на изображении ниже, в столбце top_level_name в первой строке должно быть указано: "(103432, '282 ..."

Во второй строке top_level_name должно быть: " Corrrea CV-130 "

В 6:" 146 "

И так далее ...

enter image description here

Как я могу это сделать?

У меня есть эта таблица с именем "level"

enter image description here

И еще одна с именем "rootlevel":

level table

enter image description here

Столбец парентидного уровня является дочерним levelid.

1 Ответ

1 голос
/ 26 февраля 2020

Вы можете разместить запрос в виде табличного выражения для предварительного вычисления объединений, а затем использовать предложение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...