레코드 집합을 반환하는 함수를 만들 수 있지만 조건에 따라 필드 중 하나가 int 또는 bool이 될 수 있습니까?
이 같은:
if cond then
return query select x,y, int
else
return query select x,y, bool
end if;
SQL Server sqlvariant 유형의 동작을 시뮬레이션하려고합니다.
레코드는 모든 유형의 열을 포함 할 수 있습니다. 따라서 ( setof
) 레코드 를 반환하는 함수를 선언하면 무엇이든 반환 할 수 있습니다.
create or replace function f(_param int)
returns setof record as $$
begin
if _param = 1 then
return query select 1, true;
else
return query select 1, 'text';
end if;
end;
$$ language plpgsql;
문제는 각 용도에서 반환 된 열의 유형을 선언해야한다는 것입니다.
select *
from f(1) s (a int, b boolean);
a | b
---+---
1 | t
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다