JSON_ARRAYAGG (Transact-SQL)
применимо:Базе данных SQL Azure
управляемого экземпляра SQL Azure
конечной точки аналитики SQL и хранилища в Microsoft Fabric
Создает массив JSON из агрегирования данных ИЛИ столбцов SQL.
Чтобы создать объект JSON из агрегата, используйте JSON_OBJECTAGG.
Примечание.
json агрегатные функции JSON_OBJECTAGG
и JSON_ARRAYAGG
в настоящее время находятся в предварительной версии для Базы данных SQL Azure, Управляемого экземпляра SQL Azure (настроен с Always-up-to-date политики обновления) и хранилища данных Microsoft Fabric.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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>
Аргументы
value_expression
Выражение значения может быть столбцом или выражением в запросе или константах или литералах.
json_null_clause
Необязательно.
json_null_clause можно использовать для управления поведением JSON_ARRAYAGG
функции при value_expressionNULL
.
NULL ON NULL
Параметр преобразует значение SQL NULL
в значение JSON NULL при создании значения элемента в массиве JSON.
ABSENT ON NULL
Параметр исключает элемент в массиве JSON, если значение равноNULL
. Если опущено, ABSENT ON NULL
значение по умолчанию.
order_by_clause
Необязательно. Порядок элементов в результирующем массиве JSON можно указать для упорядочивания входных строк в агрегат.
Примеры
Пример 1
В следующем примере возвращается пустой массив JSON.
SELECT JSON_ARRAYAGG(null);
Результат
[]
Пример 2
В следующем примере создается массив JSON с тремя элементами из результирующий набор.
SELECT JSON_ARRAYAGG( c1 )
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Результат
["c","b","a"]
Пример 3
В следующем примере создается массив JSON с тремя элементами, упорядоченными по значению столбца.
SELECT JSON_ARRAYAGG( c1 ORDER BY c1)
FROM (
VALUES ('c'), ('b'), ('a')
) AS t(c1);
Результат
["a","b","c"]
Пример 4
В следующем примере возвращается результат с двумя столбцами. Первый столбец содержит object_id
значение. Второй столбец содержит массив JSON, содержащий имена столбцов. Столбцы в массиве JSON упорядочены на 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;
Результат
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"] |