【问题标题】:Oracle How to make SELECT INSIDE A SELECT work?Oracle 如何使 SELECT INSIDE A SELECT 工作?
【发布时间】:2023-01-14 02:27:59
【问题描述】:

只是想知道为什么以下选择不起作用:

 SELECT 
    A.FIELD1
     , (SELECT PCN FROM (select B.PRIORITY, B.PCN 
                        from
                        TABLE2 B 
                        WHERE B.CUST= A.CUST 
                        ORDER BY B.PRIORITY) 
         WHERE ROWNUM = 1) AS PCN 
  FROM TABLE1 A;

第 2 行出现错误:ORA-00904:“A”。“CUST”:无效标识符

重要的是要提到:

  • TABLE1 具有字段 FIELD1、CUST。
  • TABLE2 具有 PCN、PRIORITY、CUST 字段。

提前致谢。

【问题讨论】:

    标签: oracle select


    【解决方案1】:

    你可以试试这个:

    SELECT 
    A.FIELD1
     , (SELECT B.PCN 
                        from
                        TABLE2 B 
                        WHERE B.CUST= A.CUST 
                        ORDER BY B.PRIORITY
         FETCH FIRST 1 ROWS ONLY) AS PCN 
    FROM TABLE1 A;
    

    FETCH FIRST 1 ROWS ONLY 获取第一个排序的记录。适用于 12c 及更高版本并支持嵌套,并且不需要第二个子查询。

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多