COLUMN_VALUE

使用集合类型表达式TABLE引用嵌套表时,数据库会返回一个包含单列的虚拟表,该列的名称为COLUMN_VALUE,通过该伪列可以引用集合中的元素。

使用指南

COLUMN_VALUE可以在集合类型的TABLE表达式引用嵌套表时使用,可以出现在SELECT LISTWHEREHAVINGORDER BY以及GROUP BY等位置。

示例

  • 使用TABLE表达式引用user_names嵌套表查询所有用户名称。

    CREATE TYPE user_names IS TABLE OF varchar2(100);
    SELECT column_value FROM TABLE(user_names('Alice', 'Bob', 'Charlie'));

    返回结果如下:

     column_value 
    --------------
     Alice
     Bob
     Charlie
    (3 rows)
  • COLUMN_VALUE可以被用于SELECT LISTWHEREHAVINGORDER BY以及GROUP BY子句。

    • CREATE TYPE user_names IS TABLE OF varchar2(100);
      SELECT column_value FROM TABLE(user_names('Alice', 'Bob', 'Charlie', 'Alice', 'Alice', 'Bob', 'Charlie')) WHERE column_value = 'Alice';

      返回结果如下:

       column_value
      --------------
       Alice
       Alice
       Alice
      (3 rows)
    • SELECT column_value FROM TABLE(user_names('Alice', 'Bob', 'Charlie', 'Alice', 'Alice', 'Bob', 'Charlie')) GROUP BY column_value HAVING column_value = 'Alice' ORDER BY column_value;

      返回结果如下:

       column_value
      --------------
       Alice
      (1 row)