LISTAGG
返回串联的输入值,由 <delimiter > 字符串分隔。
句法:
Aggregate function
LISTAGG( [ DISTINCT ] <expr1> [, <delimiter> ] ) [ WITHIN GROUP ( <orderby_clause> ) ]
Window function:
LISTAGG( [ DISTINCT ] <expr1> [, <delimiter> ] ) [ WITHIN GROUP ( <orderby_clause> ) ] OVER ( [ PARTITION BY <expr2> ] )
参数:
<expr1>
确定要放入列表中的值的表达式(通常是列名)。表达式的计算结果应为字符串,或可转换为字符串的数据类型.
<delimiter>
字符串或计算结果为字符串的表达式。实际上,这通常是一个单字符字符串。字符串应该用单引号括起来,如下例所示。
如果未<delimiter>指定字符串,则使用空字符串作为<delimiter>.
必须<delimiter>是常数。
<expr2>
此表达式用于对分区中的行进行分组。
<orderby_clause>
确定列表中值顺序的表达式(通常是列名)。
返回值:
返回一个字符串,其中包含所有非 NULL 输入值,以delimiter
.
(请注意,这不会返回“列表”(例如,它不会返回 ARRAY;它会返回包含所有非 NULL 输入值的单个字符串。)
例子:
SELECT listagg(FieldName, '^') FROM TableName; ---------------------------------------------+ LISTAGG(FieldName, ' ') | ---------------------------------------------+ AAA^BB^VSCSC^BB^VSCSC^BB^VSCSC^BB^VSCSC^BB | ---------------------------------------------+