# Concatenate

`Concatenate`는 데이터 집합을 이미 존재하는 인 메모리 테이블에 추가할 수 있도록 하는 스크립트 로드 접두사입니다. 여러 트랜잭션 데이터 집합을 단일 중앙 팩트 테이블에 추가하거나 여러 소스에서 비롯된 특정 유형의 공통 참조 데이터 집합을 구축하는 데 자주 사용됩니다. 기능 면에서 SQL UNION 연산자와 유사합니다.

`concatenate` 작업의 결과 테이블에는 해당 테이블의 맨 아래에 추가된 새 데이터 행과 함께 원본 데이터 집합이 포함됩니다. 소스 및 대상 테이블에 다른 필드가 있을 수 있습니다. 필드가 다른 경우 결과 테이블은 소스 테이블과 대상 테이블에 있는 모든 필드의 결합된 결과를 나타내도록 확장됩니다.

구문:

Concatenate[ (tablename ) ] ( loadstatement | selectstatement )

인수

| 인수 | 설명 |
| --- | --- |
| ` tablename  ` | 기존 테이블의 이름입니다. 명명된 테이블이 `Concatenate` 작업의 대상이 되며 로드된 모든 데이터 레코드가 해당 테이블에 추가됩니다. `tablename` 매개 변수를 사용하지 않으면 대상 테이블은 이 명령문 이전에 마지막으로 로드된 테이블이 됩니다. |
| ` loadstatement/selectstatement  ` | `tablename` 인수 뒤에 오는 `loadstatement/selectstatement` 인수는 지정된 테이블에 연결됩니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 `SET DateFormat` 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.

앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.

함수 예

| 예 | 결과 |
| --- | --- |
| `Concatenate(Transactions)<br><br>Load …. ;` | `Concatenate` 접두사 아래의 LOAD 문에 로드된 데이터는 `Transactions`라는 기존 인 메모리 테이블에 추가됩니다(로드 스크립트에서 이 지점 이전에 `Transactions`라는 테이블이 로드되었다고 가정). |

## 예 1 – Concatenate 로드 접두사를 사용하여 대상 테이블에 여러 데이터 집합 추가

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm)

#### 로드 스크립트 및 결과

개요

이 예에서는 두 개의 스크립트를 순차적으로 로드합니다.

* 첫 번째 로드 스크립트에는 `Transactions`라는 테이블로 전송되는 날짜와 금액이 포함된 초기 데이터 집합이 포함되어 있습니다.

* 두 번째 로드 스크립트에는 다음이 포함됩니다.

  * `Concatenate` 접두사를 사용하여 초기 데이터 집합에 추가되는 두 번째 데이터 집합. 이 데이터 집합에는 초기 데이터 집합에 없는 추가 필드 `type`이 있습니다.
  * `Concatenate` 접두사.

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

첫 번째 로드 스크립트

```

Transactions: 
Load * Inline [ 

id, date, amount 
3750, 08/30/2018, 23.56 
3751, 09/07/2018, 556.31 
3752, 09/16/2018, 5.75 
3753, 09/22/2018, 125.00 
3754, 09/22/2018, 484.21 
3756, 09/22/2018, 59.18 
3757, 09/23/2018, 177.42 
]; 
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `id`

* `date`

* `amount`

첫 번째 로드 스크립트 결과 테이블

| id | date | amount |
| --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 |
| 3751 | 09/07/2018 | 556.31 |
| 3752 | 09/16/2018 | 5.75 |
| 3753 | 09/22/2018 | 125.00 |
| 3754 | 09/22/2018 | 484.21 |
| 3756 | 09/22/2018 | 59.18 |
| 3757 | 09/23/2018 | 177.42 |

테이블에서 초기 데이터 집합을 보여 줍니다.

두 번째 로드 스크립트

데이터 로드 편집기를 열고 아래에 로드 스크립트를 추가합니다.

```

Concatenate(Transactions) 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

결과

데이터를 로드하고 시트로 이동합니다. 이 필드를 차원으로 만듭니다.

* `type`

두 번째 로드 스크립트 결과 테이블

| id | date | amount | type |
| --- | --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 | - |
| 3751 | 09/07/2018 | 556.31 | - |
| 3752 | 09/16/2018 | 5.75 | - |
| 3753 | 09/22/2018 | 125.00 | - |
| 3754 | 09/22/2018 | 484.21 | - |
| 3756 | 09/22/2018 | 59.18 | - |
| 3757 | 09/23/2018 | 177.42 | - |
| 3758 | 10/01/2018 | 164.27 | 내부 |
| 3759 | 10/03/2018 | 384.00 | 외부 |
| 3760 | 10/06/2018 | 25.82 | 내부 |
| 3761 | 10/09/2018 | 312.00 | 내부 |
| 3762 | 10/15/2018 | 4.56 | 내부 |
| 3763 | 10/16/2018 | 90.24 | 내부 |
| 3764 | 10/18/2018 | 19.32 | 외부 |

`type`이 정의되지 않고 로드된 처음 7개 레코드에 대한 `type` 필드의 null 값에 유의합니다.

## 예 2 – 암시적 연결을 사용하여 대상 테이블에 여러 데이터 집합 추가

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm)

#### 로드 스크립트 및 결과

개요

암시적으로 데이터를 추가하는 일반적인 사용 사례는 동일하게 구조화된 데이터의 여러 파일을 로드하고 대상 테이블에 모두 추가하려는 경우입니다.

예를 들어 다음과 같은 구문으로 파일 이름에 `wildcards` 사용:

```
	 myTable: 
	  Load * from [myFile_*.qvd] (qvd); 
						
```

또는 루프에서 다음과 같은 구조체 사용:

```

	for each file in filelist('myFile_*.qvd') 

	myTable: 
	Load * from [$(file)] (qvd); 

	next file 
```

정보 메모암시적 연결은 스크립트에서 서로 정의되지 않은 경우에도 동일한 이름의 필드로 로드된 두 테이블 간에 발생합니다. 이로 인해 데이터가 의도하지 않게 테이블에 추가될 수 있습니다. 이러한 방식으로 동일한 필드가 있는 보조 테이블을 추가하지 않으려면 `NoConcatenate` 로드 접두사를 사용합니다. 대체 테이블 이름 태그로 테이블 이름을 바꾸는 것만으로는 암시적 연결이 발생하는 것을 방지할 수 없습니다. 자세한 내용은 [NoConcatenate](https://help.qlik.com/ko-KR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)을 참조하십시오.

이 예에서는 두 개의 스크립트를 순차적으로 로드합니다.

* 첫 번째 로드 스크립트에는 `Transactions`라는 테이블로 전송되는 4개의 필드가 있는 초기 데이터 집합이 포함되어 있습니다.

* 두 번째 로드 스크립트에는 첫 번째 데이터 집합과 동일한 필드가 있는 데이터 집합이 포함되어 있습니다.

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

첫 번째 로드 스크립트

```

Transactions: 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `id`

* `date`

* `amount`

* `type`

첫 번째 로드 스크립트 결과 테이블

| id | date | type | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 내부 | 164.27 |
| 3759 | 10/03/2018 | 외부 | 384.00 |
| 3760 | 10/06/2018 | 내부 | 25.82 |
| 3761 | 10/09/2018 | 내부 | 312.00 |
| 3762 | 10/15/2018 | 내부 | 4.56 |
| 3763 | 10/16/2018 | 내부 | 90.24 |
| 3764 | 10/18/2018 | 외부 | 19.32 |

테이블에서 초기 데이터 집합을 보여 줍니다.

두 번째 로드 스크립트

데이터 로드 편집기를 열고 아래에 로드 스크립트를 추가합니다.

```

Load * Inline [ 
id, date, amount, type 
3765, 11/03/2018, 129.40, Internal 
3766, 11/05/2018, 638.50, External 
]; 
```

결과

데이터를 로드하고 시트로 이동합니다.

두 번째 로드 스크립트 결과 테이블

| id | date | type | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 내부 | 164.27 |
| 3759 | 10/03/2018 | 외부 | 384.00 |
| 3760 | 10/06/2018 | 내부 | 25.82 |
| 3761 | 10/09/2018 | 내부 | 312.00 |
| 3762 | 10/15/2018 | 내부 | 4.56 |
| 3763 | 10/16/2018 | 내부 | 90.24 |
| 3764 | 10/18/2018 | 외부 | 19.32 |
| 3765 | 11/03/2018 | 내부 | 129.40 |
| 3766 | 11/05/2018 | 외부 | 638.50 |

두 번째 데이터 집합은 동일한 필드를 가지고 있기 때문에 초기 데이터 집합에 암시적으로 연결되었습니다.