如何 select 集合的第一个元素是查询的列

How to select the first element of a collection being a column of a query

table t 有两列:a 和 b。 a为整数,b为集合。

我想 select 为每一行 a 和集合 b 的第一个值。

我试过了,但没用

WITH
    s (a, b)
    AS
        (SELECT 1, 'ff' FROM DUAL
         UNION ALL
         SELECT 1, 'ee' FROM DUAL
         UNION ALL
         SELECT 1, 'ee' FROM DUAL
         UNION ALL
         SELECT 2, 'ee' FROM DUAL),
    t (a, b)
    AS
        (  SELECT s.a, COLLECT (s.b)
             FROM s
         group BY s.a)
select t.a, t.b.first()
from t

[Error] Execution (42: 16): ORA-00904: "T"."B"."FIRST": invalid identifier

有办法吗?

code

这个查询在没有收集方法的情况下做同样的事情。

WITH
    s (a, b)
    AS
        (SELECT 1, 'ff' FROM DUAL
         UNION ALL
         SELECT 1, 'ee' FROM DUAL
         UNION ALL
         SELECT 1, 'ee' FROM DUAL
         UNION ALL
         SELECT 2, 'ee' FROM DUAL),
    t (a, b)
    AS
        (  SELECT s.a, COLLECT (s.b)
             FROM s
         GROUP BY s.a),
    v (a, b)
    AS
        (SELECT t.a, tb.b
           FROM t
                OUTER APPLY (SELECT x.COLUMN_VALUE     b
                               FROM TABLE (t.b) x
                              FETCH FIRST 1 ROW ONLY) tb)
SELECT *
  FROM v;

code