Можем ли мы использовать инструкцию SELECT в условном выражении CASE в функции?
Я выполнил следующую функцию для выполнения вышеуказанной задачи.PostgreSQL: Как использовать инструкцию SELECT в выражении CASE в функции?
Пример: У меня есть функция, которая используется для отображения таблицы, содержащей некоторые строки.
create or replace function test(n integer)
returns table (name text,city text) as
$body$
begin
case n when 1 then
select * from table1
when 2 then
select * from table2
when 3 then
select * from view1
end;
end;
$body$
language plpgsql;
--Calling функция
select * from test(1);
/*have to show details of table1*/
select * from test(2);
/*have to show details of table2*/
select * from test(3);
/*have to display details of view1*/
Большое вам спасибо. Здесь немного путаницы. UNION ALL нужно, чтобы все столбцы были одинаковыми, но когда я хочу отобразить таблицу с другим столбцом, возможно ли это здесь? – Meem
@Meem: * число * столбцов и их * типы дат * должны совпадать (или автоматический подбор возможен между близкими типами). Или вам нужно заполнить константы и бросить, чтобы они соответствовали друг другу. То же самое верно для функции. Для запроса 'UNION' используются только имена первого этапа, имена на последующих этапах запроса UNION не являются несущественными. Для этой функции используются только имена объявленного типа «RETURN». –
О! хорошо. – Meem