Получить значение поля по доку 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;