JSON_ARRAYAGG (Transact-SQL)
aplica-se a:Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
ponto de extremidade de análise de SQL e Warehouse no Microsoft Fabric
Constrói uma matriz JSON de uma agregação de colunas ou dados SQL.
Para criar um objeto JSON de um agregado, use JSON_OBJECTAGG.
Observação
As funções de agregação
Convenções de sintaxe de Transact-SQL
Sintaxe
JSON_ARRAYAGG (value_expression [ order_by_clause ] [ json_null_clause ] )
json_null_clause ::= NULL ON NULL | ABSENT ON NULL
order_by_clause ::= ORDER BY <column_list>
Argumentos
value_expression
A expressão de valor pode ser uma coluna ou uma expressão em uma consulta ou constantes/literais.
json_null_clause
Opcional.
json_null_clause pode ser usado para controlar o comportamento da função JSON_ARRAYAGG
quando value_expression é NULL
. A opção NULL ON NULL
converte o valor SQL NULL
em um valor nulo JSON ao gerar o valor do elemento na matriz JSON. A opção ABSENT ON NULL
omite o elemento na matriz JSON se o valor é NULL
. Se omitido, ABSENT ON NULL
é o padrão.
order_by_clause
Opcional. A ordem dos elementos na matriz JSON resultante pode ser especificada para ordenar as linhas de entrada da agregação.
Exemplos
Exemplo 1
O exemplo a seguir retorna uma matriz JSON vazia.
SELECT JSON_ARRAYAGG(null);
Resultado
[]
Exemplo 2
O exemplo a seguir cria uma matriz JSON com três elementos de um conjunto de resultados.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Resultado
["c","b","a"]
Exemplo 3
O exemplo a seguir cria uma matriz JSON com três elementos ordenados pelo valor da coluna.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Resultado
["a","b","c"]
Exemplo 4
O exemplo a seguir retorna um resultado com duas colunas. A primeira coluna contém o valor object_id
. A segunda coluna contém uma matriz JSON com os nomes das colunas. As colunas na matriz JSON são ordenadas com base no valor column_id
.
SELECT TOP(5) c.object_id, JSON_ARRAYAGG(c.name ORDER BY c.column_id) AS column_list
FROM sys.columns AS c
GROUP BY c.object_id;
Resultado
object_id | column_list |
---|---|
3 | ["rsid","rscolid","hbcolid","rcmodified","ti","cid","ordkey","maxinrowlen","status","offset","nullbit","bitpos","colguid","ordlock"] |
5 | ["rowsetid","ownertype","idmajor","idminor","numpart","status","fgidfs","rcrows","cmprlevel","fillfact","maxnullbit","maxleaf","maxint","minleaf","minint","rsguid","lockres","scope_id"] |
6 | ["id","subid","partid","version","segid","cloneid","rowsetid","dbfragid","status"] |
7 | ["auid","type","ownerid","status","fgid","pgfirst","pgroot","pgfirstiam","pcused","pcdata","pcreserved"] |
8 | ["status","fileid","name","filename"] |