SubField - 스크립트 및 차트 함수
Subfield()는 부모 문자열 필드에서 부분 문자열 성분을 추출하는 데 사용됩니다. 여기서 원래 레코드 필드는 구분 기호로 분리된 둘 이상의 부분으로 구성됩니다.
Subfield() 함수는 전체 이름으로 구성된 레코드 목록에서 이름과 성을 추출하거나 경로 이름의 구성 요소 부분 또는 쉼표로 구분된 테이블에서 데이터를 추출하는 등의 작업에 사용할 수 있습니다.
LOAD 문에서 옵션 field_no 파라메타를 생략하고 Subfield() 함수를 사용하면 각 부분 문자열에 대해 전체 레코드 하나가 생성됩니다. Subfield()를 사용하여 여러 필드를 로드하는 경우는 모든 조합의 카티션 곱이 생성됩니다.
구문:
SubField(text, delimiter[, field_no ])
반환 데이터 유형: 문자열
인수:
인수 | 설명 |
---|---|
text | 원래 문자열입니다. 이 값은 하드 코딩된 텍스트, 변수, 달러 기호 확장 또는 다른 표현식이 될 수 있습니다. |
delimiter | 문자열을 구성 성분으로 나누는 입력 text 내의 문자열입니다. |
field_no |
세 번째 옵션 인수는 부모 문자열인 text의 부분 문자열이 반환되도록 지정하는 정수입니다.
|
예 및 결과:
예 | 결과 |
---|---|
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;
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 '|');
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 '|');
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 |