- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
OBJECT_CONSTRUCT_KEEP_NULL¶
Devolve um OBJECT construído a partir dos argumentos.
- Consulte também:
Sintaxe¶
OBJECT_CONSTRUCT_KEEP_NULL( [<key1>, <value1> [, <keyN>, <valueN> ...]] )
OBJECT_CONSTRUCT_KEEP_NULL( * )
Retornos¶
O tipo de dados do valor retornado é OBJECT.
Notas de uso¶
A função aceita qualquer um dos dois:
Uma sequência de zero ou mais pares chave-valor (onde as chaves são cadeias de caracteres e os valores são de qualquer tipo).
Um asterisco.
Quando invocado com um asterisco, o objeto é construído usando os nomes dos atributos como chaves e os valores de tupla associados como valores. Consulte os exemplos abaixo.
Se a chave for NULL (isto é, SQL NULL), o par chave-valor é omitido do objeto resultante. Entretanto, se o valor for nulo, então o par chave-valor é mantido.
O objeto construído não preserva necessariamente a ordem original dos pares chave-valor.
Exemplos¶
Este exemplo mostra a diferença entre OBJECT_CONSTRUCT e 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 | } | | | } | | +-------------------+-------------------+------------------+
O exemplo seguinte também mostra a diferença entre OBJECT_CONSTRUCT e OBJECT_CONSTRUCT_KEEP NULL, mas este exemplo utiliza uma pequena tabela (que é mostrada antes da consulta):
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 | | | } | +----------------------------------+----------------------------------+
Para obter exemplos que utilizam a função estreitamente relacionada OBJECT_CONSTRUCT, consulte OBJECT_CONSTRUCT.