カンマで区切られた値のリストを返します。
LIST( [ DISTINCT ] string-expression [, delimiter-string ] [ ORDER BY order-by-expression [ ASC | DESC ], ... ] )
string-expression 文字列式。通常はカラム名です。カラムの各ローに対して、カンマで区切られたリストに値が追加されます。DISTINCT を指定すると、ユニークな値のみが追加されます。
delimiter-string リスト項目のデリミタ文字列。デフォルト設定はカンマです。NULL 値または空の文字列を指定した場合は、デリミタはありません。delimiter-string は定数です。
order-by-expression 関数によって返された項目を並べ替えます。この引数の前にカンマは必要ありません。このため、delimiter-string を指定しない場合、使用が簡単になります。
order-by-expression には整数リテラルを指定できません。ただし、整数リテラルを含む変数を指定できます。また、同じクエリ・ブロック内の複数の LIST 関数が、異なる order-by-expression の引数を使用することはできません。
LONG VARCHAR
LONG NVARCHAR
NULL 値は、リストに追加されません。LIST (X) は、グループの各ローの、NULL 以外のすべての X の値を (デリミタ付きで) 連結させて返します。グループ内に明確な X 値を持ったローが 1 つ以上存在しない場合、LIST(X) は空の文字列を返します。
LIST 関数は Window 関数として使用できませんが、Window 関数の入力には使用できます。
この関数は NCHAR の入力または出力をサポートしています。
SQL/2003 ベンダ拡張。
次の文は、値 487 Kennedy Court, 547 School Street を返します。
SELECT LIST( Street ) FROM Employees WHERE GivenName = 'Thomas'; |
次の文は、従業員 ID をリストします。結果セットの各ローには、部門ごとの従業員 ID のカンマで区切られたリストが入っています。
SELECT LIST( EmployeeID ) FROM Employees GROUP BY DepartmentID; |
LIST( EmployeeID ) |
---|
102,105,160,243,247,249,266,278,... |
129,195,299,467,641,667,690,856,... |
148,390,586,757,879,1293,1336,... |
184,207,318,409,591,888,992,1062,... |
191,703,750,868,921,1013,1570,... |
次の文は、従業員の姓を基準に従業員 ID をソートします。
SELECT LIST( EmployeeID ORDER BY Surname ) AS "Sorted IDs" FROM Employees GROUP BY DepartmentID; |
Sorted IDs '1751,591,1062,1191,992,888,318,184,1576,207,1684,1643,1607,1740,409,1507'
Sorted IDs |
---|
1013,191,750,921,868,1658,... |
1751,591,1062,1191,992,888,318,... |
1336,879,586,390,757,148,1483,... |
1039,129,1142,195,667,1162,902,... |
160,105,1250,247,266,249,445,... |
次の文は、セミコロンで区切られたリストを返します。ORDER BY 句とリスト・セパレータの位置に注意してください。
SELECT LIST( EmployeeID, ';' ORDER BY Surname ) AS "Sorted IDs" FROM Employees GROUP BY DepartmentID; |
Sorted IDs |
---|
1013;191;750;921;868;1658;703;... |
1751;591;1062;1191;992;888;318;... |
1336;879;586;390;757;148;1483;... |
1039;129;1142;195;667;1162;902; ... |
160;105;1250;247;266;249;445;... |
次の文の前の文の違いに注意してください。次の文は、( Surname, ';' )
の複合ソート・キーによってソートされた従業員 ID のカンマで区切られたリストを返します。
SELECT LIST( EmployeeID ORDER BY Surname, ';' ) AS "Sorted IDs" FROM Employees GROUP BY DepartmentID; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |