- 카테고리:
- 반정형 및 정형 데이터 함수 (배열/오브젝트) 
OBJECT_CONSTRUCT_KEEP_NULL¶
인자에서 생성되어 NULL 값을 포함하는 키-값 페어를 유지하는 OBJECT 를 반환합니다.
- 참고 항목:
구문¶
OBJECT_CONSTRUCT_KEEP_NULL( [<key>, <value> [, <key>, <value> , ...]] )
OBJECT_CONSTRUCT_KEEP_NULL(*)
인자¶
- key
- 키-값 페어의 키. 각각의 키는 VARCHAR 값입니다. 
- value
- 키와 연결된 값입니다. 이 값은 어떤 데이터 타입이든 될 수 있습니다. 
- *
- 별표(와일드카드)로 호출하는 경우 특성 이름을 키로, 연관된 값을 값으로 사용하여 지정된 데이터에서 OBJECT 값이 생성됩니다. 아래의 예를 참조하십시오. - 함수에 와일드카드를 전달할 때 와일드카드를 테이블의 이름이나 별칭으로 한정할 수 있습니다. 예를 들어, - mytable이라는 테이블의 모든 열을 전달하려면 다음을 지정하십시오.- (mytable.*) - 필터링을 위해 ILIKE 및 EXCLUDE 키워드를 사용할 수도 있습니다. - ILIKE는 지정된 패턴과 일치하는 열 이름을 필터링합니다. 패턴은 하나만 허용됩니다. 예: - (* ILIKE 'col1%') 
- EXCLUDE는 지정된 열과 일치하지 않는 열 이름을 걸러냅니다. 예: - (* EXCLUDE col1) (* EXCLUDE (col1, col2)) 
 - 이러한 키워드를 사용할 경우 한정자가 유효합니다. 다음 예에서는 ILIKE 키워드를 사용하여 테이블 - mytable의 패턴- col1%와 일치하는 모든 열을 필터링합니다.- (mytable.* ILIKE 'col1%') - ILIKE 및 EXCLUDE 키워드는 단일 함수 호출에서 결합할 수 없습니다. - 이 함수의 경우 ILIKE 및 EXCLUDE 키워드는 SELECT 목록이나 GROUP BY 절에서만 유효합니다. - ILIKE 및 EXCLUDE 키워드에 대한 자세한 내용은 SELECT 의 “매개 변수” 섹션을 참조하십시오. 
반환¶
반환된 값의 데이터 타입은 OBJECT 입니다.
사용법 노트¶
- 키가 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   | }                |
|                   | }                 |                  |
+-------------------+-------------------+------------------+
다음 예는 OBJECT_CONSTRUCT 및 OBJECT_CONSTRUCT_KEEP NULL 간의 차이도 보여주지만, 이 예는 쿼리 전에 표시되는 작은 테이블을 사용합니다.
CREATE TABLE demo_table_1_with_nulls (province VARCHAR, created_date DATE);
INSERT INTO demo_table_1_with_nulls (province, created_date) VALUES
  ('Manitoba', '2024-01-18'::DATE),
  ('British Columbia', NULL),
  ('Alberta', '2024-01-19'::DATE),
  (NULL, '2024-01-20'::DATE);
SELECT *
  FROM demo_table_1_with_nulls
  ORDER BY province;
+------------------+--------------+
| PROVINCE         | CREATED_DATE |
|------------------+--------------|
| Alberta          | 2024-01-19   |
| British Columbia | NULL         |
| Manitoba         | 2024-01-18   |
| NULL             | 2024-01-20   |
+------------------+--------------+
SELECT OBJECT_CONSTRUCT(*) AS oc,
       OBJECT_CONSTRUCT_KEEP_NULL(*) AS oc_keep_null
  FROM demo_table_1_with_nulls
  ORDER BY oc_keep_null['PROVINCE'];
+----------------------------------+----------------------------------+
| OC                               | OC_KEEP_NULL                     |
|----------------------------------+----------------------------------|
| {                                | {                                |
|   "CREATED_DATE": "2024-01-19",  |   "CREATED_DATE": "2024-01-19",  |
|   "PROVINCE": "Alberta"          |   "PROVINCE": "Alberta"          |
| }                                | }                                |
| {                                | {                                |
|   "PROVINCE": "British Columbia" |   "CREATED_DATE": null,          |
| }                                |   "PROVINCE": "British Columbia" |
|                                  | }                                |
| {                                | {                                |
|   "CREATED_DATE": "2024-01-18",  |   "CREATED_DATE": "2024-01-18",  |
|   "PROVINCE": "Manitoba"         |   "PROVINCE": "Manitoba"         |
| }                                | }                                |
| {                                | {                                |
|   "CREATED_DATE": "2024-01-20"   |   "CREATED_DATE": "2024-01-20",  |
| }                                |   "PROVINCE": null               |
|                                  | }                                |
+----------------------------------+----------------------------------+
밀접하게 관련된 함수 OBJECT_CONSTRUCT를 사용하는 예는 OBJECT_CONSTRUCT 를 참조하십시오.