JSON_OBJECTAGG (Transact-SQL)
S’applique à : Azure SQL Database Azure SQL Managed Instance
Construit un objet JSON à partir d’une agrégation de données ou de colonnes SQL.
Les paires clé/valeur peuvent être spécifiées en tant que valeurs d’entrée, colonne, références de variables.
Pour créer un tableau JSON à partir d’un agrégat, utilisez JSON_ARRAYAGG.
Remarque
Les fonctions JSON_OBJECTAGG
d’agrégation json et JSON_ARRAYAGG
sont actuellement en préversion pour Azure SQL Database et Azure SQL Managed Instance (configurées avec la stratégie de mise à jour Always-up-à-date).
Conventions de la syntaxe Transact-SQL
Syntaxe
JSON_OBJECTAGG ( json_key_value [ json_null_clause ] )
json_key_value ::= <json_name> : <value_expression>
json_null_clause ::= NULL ON NULL | ABSENT ON NULL
Arguments
json_key_value
La paire clé/valeur de l'objet JSON.
json_null_clause
facultatif. Omettez la propriété entière d’un objet si la valeur est NULL
ou utilisez JSON null comme valeur de propriété. En cas d’omission, NULL ON NULL
est la valeur par défaut.
Exemples
Exemple 1
L’exemple suivant renvoie un objet JSON avec une clé et une valeur nulle.
select JSON_OBJECTAGG ( 'key':null )
Résultat
{"key":null}
Exemple 2
L’exemple suivant construit un objet JSON avec trois propriétés à partir d’un jeu de résultats.
SELECT JSON_OBJECTAGG( c1:c2 )
FROM (
VALUES('key1', 'c'), ('key2', 'b'), ('key3','a')
) AS t(c1, c2);
Résultat
{"key1":"c","key2":"b","key3":"a"}
Exemple 3
L'exemple suivant renvoie un résultat avec deux colonnes. La première colonne contient la valeur object_id
. La deuxième colonne contient un objet JSON où la clé est le nom de la colonne, et column_id
la valeur.
SELECT TOP(5) c.object_id, JSON_OBJECTAGG(c.name:c.column_id) AS columns
FROM sys.columns AS c
GROUP BY c.object_id;
Résultat
object_id | column_list |
---|---|
3 | {"bitpos":12,"cid":6,"colguid":13,"hbcolid":3,"maxinrowlen":8,"nullbit":11,"offset":10,"ordkey":7,"ordlock":14,"rcmodified":4,"rscolid":2,"rsid":1,"status":9,"ti":5} |
5 | {"cmprlevel":9,"fgidfs":7,"fillfact":10,"idmajor":3,"idminor":4,"lockres":17,"maxint":13,"maxleaf":12,"maxnullbit":11,"minint":15,"minleaf":14,"numpart":5,"ownertype":2,"rcrows":8,"rowsetid":1,"rsguid":16,"scope_id":18,"status":6} |
6 | {"cloneid":6,"dbfragid":8,"id":1,"partid":3,"rowsetid":7,"segid":5,"status":9,"subid":2,"version":4} |
7 | {"auid":1,"fgid":5,"ownerid":3,"pcdata":10,"pcreserved":11,"pcused":9,"pgfirst":6,"pgfirstiam":8,"pgroot":7,"status":4,"type":2} |
8 | {"fileid":2,"filename":4,"name":3,"status":1} |