- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
OBJECT_CONSTRUCT_KEEP_NULL¶
Renvoie un OBJECT construit à partir des arguments.
- Voir aussi :
Syntaxe¶
OBJECT_CONSTRUCT_KEEP_NULL( [<key1>, <value1> [, <keyN>, <valueN> ...]] )
OBJECT_CONSTRUCT_KEEP_NULL( * )
Renvoie¶
Le type de données de la valeur renvoyée est OBJECT.
Notes sur l’utilisation¶
La fonction accepte :
Une séquence de zéro ou plusieurs paires clé-valeur (où les clés sont des chaînes et les valeurs sont de tout type).
Un astérisque.
Lorsqu’il est appelé avec un astérisque, l’objet est construit à l’aide des noms d’attribut en tant que clés et des valeurs de tuple associées en tant que valeurs. Voir les exemples ci-dessous.
Si la clé est NULL (c’est-à-dire SQL NULL), la paire clé-valeur est omise de l’objet résultant. Toutefois, si la valeur est nulle, la paire clé-valeur est conservée.
L’objet construit ne conserve pas nécessairement l’ordre d’origine des paires clé-valeur.
Exemples¶
Cet exemple montre la différence entre OBJECT_CONSTRUCT et OBJECT_CONSTRUCT_KEEP_NULL :
SELECT OBJECT_CONSTRUCT('key_1', 'one', 'key_2', NULL) AS WITHOUT_KEEP_NULL, OBJECT_CONSTRUCT_KEEP_NULL('key_1', 'one', 'key_2', NULL) AS KEEP_NULL_1, OBJECT_CONSTRUCT_KEEP_NULL('key_1', 'one', NULL, 'two') AS KEEP_NULL_2 ; +-------------------+-------------------+------------------+ | WITHOUT_KEEP_NULL | KEEP_NULL_1 | KEEP_NULL_2 | |-------------------+-------------------+------------------| | { | { | { | | "key_1": "one" | "key_1": "one", | "key_1": "one" | | } | "key_2": null | } | | | } | | +-------------------+-------------------+------------------+
L’exemple suivant montre également la différence entre OBJECT_CONSTRUCT et OBJECT_CONSTRUCT_KEEP NULL, mais cet exemple utilise une petite table (qui est affichée avant la requête) :
SELECT * FROM demo_table_1 ORDER BY province; +------------------+--------------+ | PROVINCE | CREATED_DATE | |------------------+--------------| | Alberta | 2020-01-19 | | British Columbia | NULL | | Manitoba | 2020-01-18 | | NULL | 2020-01-20 | +------------------+--------------+SELECT OBJECT_CONSTRUCT(*) AS oc, OBJECT_CONSTRUCT_KEEP_NULL(*) AS oc_keep_null FROM demo_table_1 ORDER BY oc_keep_null['PROVINCE']; +----------------------------------+----------------------------------+ | OC | OC_KEEP_NULL | |----------------------------------+----------------------------------| | { | { | | "CREATED_DATE": "2020-01-19", | "CREATED_DATE": "2020-01-19", | | "PROVINCE": "Alberta" | "PROVINCE": "Alberta" | | } | } | | { | { | | "PROVINCE": "British Columbia" | "CREATED_DATE": null, | | } | "PROVINCE": "British Columbia" | | | } | | { | { | | "CREATED_DATE": "2020-01-18", | "CREATED_DATE": "2020-01-18", | | "PROVINCE": "Manitoba" | "PROVINCE": "Manitoba" | | } | } | | { | { | | "CREATED_DATE": "2020-01-20" | "CREATED_DATE": "2020-01-20", | | } | "PROVINCE": null | | | } | +----------------------------------+----------------------------------+
Pour des exemples qui utilisent la fonction OBJECT_CONSTRUCT étroitement liée, voir OBJECT_CONSTRUCT.