Получить значение поля по доку SQL

Работаю в базе данных firebird. Есть древовидный справочник TABLE, вида:

ID, CODE, NAME
1, 1, Раздел 1
2, 11, Раздел 11
3, 12, Раздел 12
4, 2, Раздел 2
5, 21, Раздел 21
6, 22, Раздел 22
7, 23, Раздел 23

Есть подзапрос вида:

WITH SUB_QUERY AS (
  SELECT 
    CASE 
      WHEN TABLE.CODE IN (11, 12) THEN 1
      WHEN TABLE.CODE IN (21, 22, 23) THEN 2
      ELSE NULL
    END CODE
  FROM TABLE
)

Который выводит таблицу вида:

CODE
1
2

Что нужно сделать, чтобы получить значение поля NAME исходя из значения поля код? чтобы на выходе получилась таблица:

CODE, NAME
1, Раздел 1
2, Раздел 2

Ответы (1 шт):

Автор решения: RSK

У меня получился такой запрос. Возвращает данные которые вам нужны.

WITH SUB_QUERY AS (
  SELECT 
    CASE 
      WHEN TEST.CODE IN (11, 12) THEN 1
      WHEN TEST.CODE IN (21, 22, 23) THEN 2
      ELSE NULL
    END AS CODE
  FROM TEST
)
SELECT DISTINCT
  SQ.CODE,
  ts.NAME
FROM SUB_QUERY SQ
JOIN TEST ts ON sq.CODE = ts.CODE
WHERE SQ.CODE IS NOT NULL;
→ Ссылка