# SubField - 스크립트 및 차트 함수

Subfield()는 부모 문자열 필드에서 부분 문자열 성분을 추출하는 데 사용됩니다. 여기서 원래 레코드 필드는 구분 기호로 분리된 둘 이상의 부분으로 구성됩니다.

Subfield() 함수는 전체 이름으로 구성된 레코드 목록에서 이름과 성을 추출하거나 경로 이름의 구성 요소 부분 또는 쉼표로 구분된 테이블에서 데이터를 추출하는 등의 작업에 사용할 수 있습니다.

LOAD 문에서 옵션 field\_no 파라메타를 생략하고 Subfield() 함수를 사용하면 각 부분 문자열에 대해 전체 레코드 하나가 생성됩니다. Subfield()를 사용하여 여러 필드를 로드하는 경우는 모든 조합의 카티션 곱이 생성됩니다.

구문:

SubField(text, delimiter[, field\_no ])

반환 데이터 유형: 문자열

인수:

SubField 인수

| 인수 | 설명 |
| --- | --- |
| text | 원래 문자열입니다. 이 값은 하드 코딩된 텍스트, 변수, 달러 기호 확장 또는 다른 표현식이 될 수 있습니다. |
| delimiter | 문자열을 구성 성분으로 나누는 입력 text 내의 문자열입니다. |
| field\_no | 세 번째 옵션 인수는 부모 문자열인 text의 부분 문자열이 반환되도록 지정하는 정수입니다.<br><br><ul> <li><span>field_no</span>가 양수 값이면 부분 문자열이 왼쪽에서 오른쪽으로 추출됩니다.</li> <li><span>field_no</span>가 음수 값이면 부분 문자열이 오른쪽에서 왼쪽으로 추출됩니다.</li> </ul> |

팁 메모 SubField()는 Len(), Right(), Left(), Mid() 및 기타 문자열 함수를 복잡하게 조합한 함수를 대신하여 사용할 수 있습니다.

예 및 결과:

예 1-3

| 예 | 결과 |
| --- | --- |
| ` SubField('abc;cde;efg', ';', 2)  ` | 'cde'를 반환합니다. |
| ` SubField('', ';', 1)  ` | NULL를 반환합니다. |
| ` SubField(';', ';', 1)  ` | 빈 문자열을 반환합니다. |

예제 스크립트를 문서에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 문서의 시트에 추가합니다.

`FullName:` `LOAD * inline [` `Name` `'Dave Owen'` `'Joe Tem'` `];` ` ` `SepNames:` `Load Name,` `SubField(Name, ' ',1) as FirstName,` `SubField(Name, ' ',-1) as Surname` `Resident FullName;` `Drop Table FullName;`

예 4

| Name | FirstName | Surname |
| --- | --- | --- |
| Dave Owen | Dave | Owen |
| Joe Tem | Joe | Tem |

경로 이름 vMyPath를 보유하는 변수가 있다고 가정하십시오.

`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`.

텍스트 및 이미지 차트에서 다음과 같은 측정값을 추가할 수 있습니다.  
`SubField(vMyPath, '\',-3``)`. 결과 값은 'Qlik'으로, 이 값이 변수 vMyPath 오른쪽 끝에서 세 번째의 하위 문자열이기 때문입니다.

This example shows how multiple rows are created from a single instance of Subfield().

예제 스크립트를 문서에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 문서의 시트에 추가합니다.

`LOAD DISTINCT` `Player,` `SubField(Project,',') as Project;` ` ` `Load * inline [` `Player|Project` `Neil|Music,OST` `Jo|Music` `Mike|Music,OST,Video` `] (delimiter is '|');`

예 5:

| Player | Project |
| --- | --- |
| Neil | Music |
| Neil | OST |
| Jo | Music |
| Mike | Music |
| Mike | OST |
| Mike | Video |

이 예에서는 Subfield() 함수의 여러 인스턴스를 사용하여 동일한 LOAD 문 내에서 field\_no 매개 변수가 생략된 각 인스턴스가 모든 조합의 데카르트 곱을 만드는 방법을 보여줍니다. DISTINCT 옵션은 중복 레코드 생성을 방지하는 데 사용됩니다.

예제 스크립트를 문서에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 문서의 시트에 추가합니다.

`LOAD DISTINCT` `Instrument,` `SubField(Player,',') as Player,` `SubField(Project,',') as Project;` ` ` `Load * inline [` `Instrument|Player|Project` `Guitar|Neil,Mike|Music,Video` `Guitar|Neil|Music,OST` `Synth|Neil,Jen|Music,Video,OST` `Synth|Jo|Music` `Guitar|Neil,Mike|Music,OST` `] (delimiter is '|');`

예 6

| Instrument | Player | Project |
| --- | --- | --- |
| Guitar | Mike | Music |
| Guitar | Mike | Video |
| Guitar | Mike | OST |
| Guitar | Neil | Music |
| Guitar | Neil | Video |
| Guitar | Neil | OST |
| Synth | Jen | Music |
| Synth | Jen | Video |
| Synth | Jen | OST |
| Synth | Jo | Music |
| Synth | Neil | Music |
| Synth | Neil | Video |
| Synth | Neil | OST |