选择包含行类型数据的列

行类型列是在已命名 ROW 类型或未命名 ROW 类型上定义的列。使用相同的 SQL 语法来查询已命名 ROW 类型和未命名行类型列。

对行类型列的查询返回 ROW 类型的所有字段的数据。字段是 ROW 类型中的组件数据类型。例如:employee 表的 address 列包含 streetcitystatezip 字段。下列查询显示如何构造返回 address 列的所有字段的查询。

图: 查询

SELECT address FROM employee

图: 查询结果

address     ROW(102 Ruby, Belmont, CA, 49932, 1000) 
          address     ROW(133 First, San Jose, CA, 85744, 4900)
          address     ROW(152 Topaz, Willits, CA, 69445, 1000))
          ⋮
要访问列包含的个别字段,使用单个点符号表示法来投影列的个别字段。例如:假设您要访问 employee 表的 address 列中的特定字段。以下 SELECT 语句投影 address 列的 citystate 字段。

图: 查询

SELECT address.city, address.state FROM employee

图: 查询结果

city             state
          
          Belmont          CA 
          San Jose         CA
          Willits          CA
          ⋮
用对已命名行类型列构造查询所用的方法来对未命名行类型列构造查询。例如:假设您想要访问图 2student 表的 s_address 列的数据。可以使用点符号表示法来查询对未命名行类型定义的列的个别字段。以下查询显示如何对 student 表构造返回 s_address 列的 citystate 字段的行的 SELECT 语句。

图: 查询

SELECT s_address.city, s_address.state FROM student

图: 查询结果

city             state
            
            Belmont          CA 
            Mount Prospect   IL
            Greeley          CO
            ⋮