Sql in、in子句中的多列

Sql in、in子句中的多列,sql,Sql,我无法在Oracle中运行此查询,因为它不允许在in子句中使用多个列名 CURSOR temp_3((VOUCHER_NO IN NUMBER) IS SELECT * FROM INVOICE_ITEM_TAB WHERE INVOICE_ID, PO_REF_NUMBER IN ( SELECT INVOICE_ID, PO_REF_NUMBER, FROM IN

我无法在Oracle中运行此查询,因为它不允许在in子句中使用多个列名

CURSOR temp_3((VOUCHER_NO IN NUMBER) IS 
           SELECT * 
           FROM INVOICE_ITEM_TAB 
           WHERE INVOICE_ID, PO_REF_NUMBER IN (
              SELECT INVOICE_ID, PO_REF_NUMBER, 
              FROM INVOICE_TAB 
              WHERE VOUCHER_NO_REF IN (
                 SELECT VER_NO 
                 FROM WORK_ORDER_CODING_TAB 
                 WHERE VER_NO=VOUCHER_NO
              )
            )  
有人能帮我改用exists吗

相反,使用存在


我想你想要这样的东西

select*from table where col in select Id from table where column='xyz'

**还有一条路**


从“aa”、“bb”和“cc”中的列所在的表中选择*。

您想要这样的东西吗

select*from table where col in select Id from table where column='xyz'

**还有一条路**


从“aa”、“bb”和“cc”中的列所在的表中选择*您想做什么?不能在子句中使用多列。。您可以使用内部联接或exists查询检查tihs链接您想做什么?不能在子句中使用多列。。您可以使用内部联接或现有查询检查tihs链接
   SELECT * 
   FROM INVOICE_ITEM_TAB iit
   WHERE exists
      SELECT null, 
      FROM INVOICE_TAB it
      WHERE 
         iit.INVOICE_ID = it.INVOICE_ID and
         iit.PO_REF_NUMBER = it.PO_REF_NUMBER and
         it.VOUCHER_NO_REF IN (
            SELECT VER_NO 
            FROM WORK_ORDER_CODING_TAB 
            WHERE VER_NO=VOUCHER_NO
      )
    )