4

我试图在 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-returning 函数

4

1 回答 1

6

使用 alateral 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 ;
于 2017-11-30T13:16:44.693 回答