Я пытаюсь изменить подзапрос, используемый в выражении, в зависимости от значения переменной, которую я передаю в sql.
Я пробовал несколько разных способов, но безуспешно.Следующий sql выдает ошибку: подзапрос должен возвращать только один столбец
WITH
sel_cells As (
SELECT
CASE WHEN cast (RIGHT( variable, 1 ) As int)>1 THEN (
SELECT part_2.geom, part_2.gridcode
FROM adm2 AS part_1, grid_1km_europe AS part_2
WHERE part_1.gid = 7224
AND ST_Intersects(part_1.geom, part_2.geom)
) ELSE (
SELECT part_2.geom, part_2.gridcode
FROM grid_1km_europe As part_2
INNER JOIN grid_1km_europe_adm2 As part_1
ON part_1.gridcode = part_2.gridcode
WHERE part_1.adm_gid = 7224
)
END
),
emissions_part As (
SELECT grid_id_1km, emissions_kg
FROM emissions
WHERE year_ = 2015 AND sector = 'Energy' AND pollutant = 'PM10'
)
SELECT
a.emissions_kg,
a.grid_id_1km,
b.geom
FROM emissions_part As a
INNER JOIN sel_cells As b
ON a.grid_id_1km = b.gridcode
Я использую Postgres.
Как правильно это сделать?
Спасибо за помощь!