SubField()는 부모 문자열 필드에서 부분 문자열 성분을 추출하는 데 사용됩니다. 여기서 원래 레코드 필드는 구분 기호로 분리된 둘 이상의 부분으로 구성됩니다.
Subfield() 함수는 전체 이름으로 구성된 레코드 목록에서 이름과 성을 추출하거나 경로 이름의 구성 요소 부분 또는 쉼표로 구분된 테이블에서 데이터를 추출하는 등의 작업에 사용할 수 있습니다.
LOAD 문에서 옵션 field_no 파라메타를 생략하고 Subfield() 함수를 사용하면 각 부분 문자열에 대해 전체 레코드 하나가 생성됩니다. Subfield()를 사용하여 여러 필드를 로드하는 경우는 모든 조합의 카티션 곱이 생성됩니다.
구문:
SubField(text,
delimiter[, field_no ])
반환 데이터 유형: 문자열
인수:
인수
인수
설명
text
원래 문자열입니다. 이 값은 하드 코딩된 텍스트, 변수, 달러 기호 확장 또는 다른 표현식이 될 수 있습니다.
delimiter
문자열을 구성 성분으로 나누는 입력 text 내의 문자열입니다.
field_no
세 번째 옵션 인수는 부모 문자열인 text의 부분 문자열이 반환되도록 지정하는 정수입니다. 첫 번째 부분 문자열을 반환하려면 값 1, 두 번째 부분 문자열을 반환하려면 2를 사용합니다.
field_no가 양수 값이면 부분 문자열이 왼쪽에서 오른쪽으로 추출됩니다.
field_no가 음수 값이면 부분 문자열이 오른쪽에서 왼쪽으로 추출됩니다.
팁 메모SubField()는 Len(), Right(), Left(), Mid() 및 기타 문자열 함수를 복잡하게 조합한 함수를 대신하여 사용할 수 있습니다.
예: 차트 표현식
예
결과
SubField(S, ';' ,2)
S가 'abc;cde;efg'인 경우 'cde'를 반환합니다.
SubField(S, ';' ,1)
S가 빈 문자열인 경우 빈 문자열을 반환합니다.
SubField(S, ';' ,1)
S가 ';'인 경우 빈 문자열을 반환합니다.
경로 이름 vMyPath가 포함된 변수가 있다고 가정해 보겠습니다.
Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;에서 관리합니다.
텍스트 및 이미지 차트에서 다음과 같은 측정값을 추가할 수 있습니다. SubField(vMyPath, '\',-3), 결과 값은 'Qlik'으로, 이 값이 변수 vMyPath 오른쪽 끝에서 세 번째의 하위 문자열이기 때문입니다.
예: SubField를 사용한 스크립트 및 차트 표현식
기본 예
예
결과
SubField(S, ';' ,2)
S가 'abc;cde;efg'인 경우 'cde'를 반환합니다.
SubField(S, ';' ,1)
S가 빈 문자열인 경우 빈 문자열을 반환합니다.
SubField(S, ';' ,1)
S가 ';'인 경우 빈 문자열을 반환합니다.
경로 이름 vMyPath가 포함된 변수가 있다고 가정해 보겠습니다.
Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;에서 관리합니다.
텍스트 및 이미지 차트에서 다음과 같은 측정값을 추가할 수 있습니다. SubField(vMyPath, '\',-3), 결과 값은 'Qlik'으로, 이 값이 변수 vMyPath 오른쪽 끝에서 세 번째의 하위 문자열이기 때문입니다.
스크립트 예 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을 차원으로 사용하여 Qlik Sense 시트에 테이블 시각화를 만듭니다.
결과
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
설명
SubField() 함수는 field_no 인수를 1로 설정하여 Name의 첫 번째 부분 문자열을 추출합니다. field_no의 값이 양수이므로 하위 열을 추출하기 위해 왼쪽에서 오른쪽 순서를 따릅니다. 두 번째 함수 호출은 field_no 인수를 -1로 설정하여 두 번째 하위 문자열을 추출합니다. 그러면 오른쪽에서 왼쪽 순서로 하위 문자열이 추출됩니다.
스크립트 예 2
로드 스크립트
데이터 로드 편집기에서 다음 스크립트 표현식과 데이터를 로드합니다.
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를 차원으로 사용하여 Qlik Sense 시트에 테이블 시각화를 만듭니다.
결과
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
설명
이 예는 Subfield() 함수의 여러 인스턴스를 사용하는 방법을 보여줍니다. 각각은 field_no 파라메타가 생략되어 있으며 동일한 LOAD 문 내에서 모든 조합의 카티션 곱을 생성합니다. DISTINCT 옵션은 중복 레코드 생성을 피하기 위해 사용됩니다.
이 페이지가 도움이 되었습니까?
이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!