카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

OBJECT_CONSTRUCT_KEEP_NULL

인자에서 생성된 OBJECT 를 반환합니다.

참고 항목:

OBJECT_CONSTRUCT

구문

OBJECT_CONSTRUCT_KEEP_NULL( [<key1>, <value1> [, <keyN>, <valueN> ...]] )

OBJECT_CONSTRUCT_KEEP_NULL( * )
Copy

반환

반환된 값의 데이터 타입은 OBJECT 입니다.

사용법 노트

  • 함수는 다음 중 하나를 허용합니다.

    • 0개 이상의 키-값 페어의 시퀀스(여기서 키는 문자열이고 값은 모든 형식임).

    • 별표.

    별표와 함께 호출하는 경우, 속성 이름을 키로 사용하고 연결된 튜플 값을 값으로 사용하여 오브젝트가 구성됩니다. 아래의 예를 참조하십시오.

  • 키가 NULL(즉, SQL NULL)인 경우, 결과 오브젝트에서 키-값 페어가 생략됩니다. 그러나 값이 null인 경우, 키-값 페어가 유지됩니다.

  • 생성된 오브젝트는 키-값 페어의 원래 순서를 반드시 보존하지는 않습니다.

이 예는 OBJECT_CONSTRUCT 및 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   | }                |
|                   | }                 |                  |
+-------------------+-------------------+------------------+
Copy

다음 예는 OBJECT_CONSTRUCT 및 OBJECT_CONSTRUCT_KEEP NULL 간의 차이도 보여주지만, 이 예는 쿼리 전에 표시되는 작은 테이블을 사용합니다.

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   |
+------------------+--------------+
Copy
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               |
|                                  | }                                |
+----------------------------------+----------------------------------+
Copy

밀접하게 관련된 함수 OBJECT_CONSTRUCT를 사용하는 예는 OBJECT_CONSTRUCT 를 참조하십시오.