如何在第一行的DB2 iseries中LEFT JOIN?

Dan*_*llo 2 sql db2 iseries-navigator

我需要一个查询,使用其他表值的第一行来加入TABLE:

 SELECT * FROM TABLEA A LEFT JOIN
    (SELECT * from TABLEB
       WHERE FIELD1 <> '3' and FIELD2 = 'D' AND A.CODE=CODE
      FETCH FIRST 1 ROW ONLY
     ) B
 on a.FIELDA = b.FIELDA
 and A.FIELDB = B.FIELDB
Run Code Online (Sandbox Code Playgroud)

但DB2返回ERROR因为无法使用A.CODE

怎么解决这个?

mus*_*cio 6

您需要使用嵌套表表达式:

SELECT * FROM TABLEA A LEFT JOIN
  LATERAL (SELECT * from TABLEB
     WHERE FIELD1 <> '3' and FIELD2 = 'D' AND A.CODE=CODE
     FETCH FIRST 1 ROW ONLY
  ) B
on a.FIELDA = b.FIELDA
and A.FIELDB = B.FIELDB
Run Code Online (Sandbox Code Playgroud)