我试图在PostgreSQL 10中运行此查询:
select e.errordescription,
CASE
WHEN e.reworkempid is not null THEN get_empname(e.reworkempid)
else null
end
from error_log_gs e
where e.qcworkpackageid=3012175 and e.logno=1
得到错误:
CASE 中不允许使用set-returns函数
答案 0 :(得分:3)
改为使用lateral join
:
select e.errordescription, ge.name
from error_log_gs e left join lateral
get_empname(e.reworkempid) ge(name)
on e.reworkempid is not null
where e.qcworkpackageid = 3012175 and e.logno = 1 ;