- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
OBJECT_CONSTRUCT_KEEP_NULL¶
Gibt ein OBJECT zurück, das aus den Argumenten aufgebaut ist.
- Siehe auch:
Syntax¶
OBJECT_CONSTRUCT_KEEP_NULL( [<key1>, <value1> [, <keyN>, <valueN> ...]] )
OBJECT_CONSTRUCT_KEEP_NULL( * )
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist OBJECT.
Nutzungshinweise¶
Die Funktion akzeptiert Folgendes:
Eine Sequenz von null oder mehr Schlüssel-Wert-Paaren (wobei Schlüssel Zeichenfolgen und Werte eines beliebigen Typs sind).
Ein Sternchen.
Beim Aufrufen mit einem Sternchen wird das Objekt unter Verwendung der Attributnamen als Schlüssel und der zugeordneten Tupelwerte als Werte erstellt. Siehe die Beispiele unten.
Wenn der Schlüssel NULL (d. h. SQL NULL) ist, wird das Schlüssel-Wert-Paar im resultierenden Objekt weggelassen. Wenn der Wert jedoch null ist, wird das Schlüssel-Wert-Paar beibehalten.
Das konstruierte Objekt behält nicht unbedingt die ursprüngliche Reihenfolge der Schlüssel-Wert-Paare bei.
Beispiele¶
Diese Beispiel zeigt den Unterschied zwischen OBJECT_CONSTRUCT und 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 | } | | | } | | +-------------------+-------------------+------------------+
Das folgende Beispiel zeigt auch den Unterschied zwischen OBJECT_CONSTRUCT und OBJECT_CONSTRUCT_KEEP NULL, wobei hier aber eine kleine Tabelle verwendet wird (die vor der Abfrage angezeigt wird):
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 | | | } | +----------------------------------+----------------------------------+
Für Beispiele, die die eng verwandte Funktion OBJECT_CONSTRUCT verwenden, siehe OBJECT_CONSTRUCT.