Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
「フィールド」という名前のペア (フィールド名のデータ型, ... ) の順序を返します。
ROW( expression [, expression ... ] )
ROW( single-row-query-expression )
expression 単一のフィールドを表す式。
single-row-query-expression 単一のフィールドを返すクエリ文。
フィールド値
すべてのフィールドが NULL に初期化され、特定のフィールド内に値が明示的または暗黙的に配置されるまで NULL のままとなります。
ビュー定義の最も外側の SELECT リスト、あるいはクライアントに返されたトップレベルの SELECT ブロックまたはクエリ式で、ROW 型を指定することはできません。ベーステーブルまたはテンポラリテーブルで ROW 型をカラムとして保存することはできません。
ROW 型には、複雑な構造型となるネストの任意のレベルを含めることができます。各行のサブタイプには名前が付けられ、それらの名前は特定の値を参照する dot 表記を使用して参照できます。次に例を示します。
DECLARE sample ROW( x INT, w ROW( y INT, z INT ) ); SET Sample = ROW( 3, ROW( 6,7 ) ); SELECT (Sample).w.y FROM dummy;
dot 表記により、同じクエリブロックまたはネストされているクエリブロックの他の式を使用して、ROW 型のすべてまたは一部を参照して他の RAW 型の比較または初期化を行うことができます。
修飾名を持つカラム内のフィールドを参照する場合は、カラム名をカッコで囲みます。次の例では、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;
plnfo ROW 型には、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 式は、dot 式を plnfo 行の名前で使用して、plnfo 行のコンポーネントを参照できます。ROW 型は、シングルロークエリ式を使用して構成することもできます。
次の文は、ROW を構成する代替方法を示します。
SELECT ROW( SELECT Name, Quantity FROM Products WHERE ID = 300 );
次の文は、ROW、student、でフィールド last_name を名前別に設定する方法を示します。
SET student.last_name = 'Johnson';