Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
返回一系列名为字段的 ( field name data type, ... ) 对。
ROW( expression [, expression ... ] )
ROW( single-row-query-expression )
expression 表示单个字段的表达式。
single-row-query-expression 返回单个字段的查询语句。
字段值
所有字段均会被初始化为 NULL,并将在显式或隐式地于某特定字段内放置值之前一直保持为 NULL。
ROW 类型无法在视图定义的最外层 SELECT 列表或者返回到客户端的最高级 SELECT 块或查询表达式中加以指定。ROW 类型无法作为列存储在基表或临时表中。
行类型可包含任意级别的嵌套,进而得到复杂的结构化类型。为每个行子类型均提供了一个名称,并且这些名称可通过使用点表示法引用特定值的方式加以引用。例如:
DECLARE sample ROW( x INT, w ROW( y INT, z INT ) ); SET Sample = ROW( 3, ROW( 6,7 ) ); SELECT (Sample).w.y FROM dummy;
点表示法允许相同或嵌套的查询块中的其它表达式来引用所有或部分行类型,以对其它 ROW 类型进行比较或初始化。
在引用具有限定名称的列中的字段时,需用括号括上列名称。在以下示例中,myrowcolumn 列将由其派生表的名称加以限定:
SELECT ( myderivedtable.myrowcolumn ).id FROM (SELECT ROW( id, name ) FROM GROUPO.Product ) AS myderivedtable( myrowcolumn );
SQL/2008 服务商扩充。
以下语句说明了如何构造包含 Products 表中各产品的产品信息结构类型的 ROW 类型。
SELECT ROW( ID, NAME, DESCRIPTION ) AS pInfo FROM GROUPO.Products;
pInfo 行类型具有名为 ID、NAME 和 DESCRIPTION 的元素,这些名称是从 Products 表的属性名借用的。
以下语句说明如何使用 CAST 函数将显式名称指派给隐式 ROW 类型:
SELECT CAST( ROW( 9, 'Tee Shirt', 'My tee shirt' ) AS ROW(ProductID INTEGER, ProductName CHAR(25), ProductDescription CHAR(35) ) AS pInfo FROM dummy;
使用此查询结果作为输入的 SQL 表达式可按其名称上的带点表达式来引用 pInfo 行的组成部分。ROW 类型也可用单行查询表达式加以构造。
以下语句说明了另一种构造 ROW 的方法:
SELECT ROW( SELECT Name, Quantity FROM Products WHERE ID = 300 );
以下语句说明了如何在 ROW (student) 中按名称设置字段 last_name:
SET student.last_name = 'Johnson';