statement 또는 exitstatement는 condition이 False로 평가된 경우에만 실행됩니다.
unless 접두사는 추가적인 when 또는 unless 접두사를 포함한 하나 이상의 다른 문을 이미 가지고 있는 문에서도 사용할 수 있습니다.
인수
인수
설명
condition
True 또는 False로 평가되는 논리 표현식입니다.
statement
제어 문을 제외한 Qlik Sense 스크립트 문입니다.
exitstatement
exit for, exit do 또는 exit sub 절 혹은 exit script 문.
사용 시기
Unless 문은 부울 결과를 반환합니다. 일반적으로 이 유형의 함수는 사용자가 스크립트의 일부를 조건부로 로드하거나 제외하려는 경우 조건으로 사용됩니다.
다음 줄에서는 Unless 함수 사용 방법에 대한 세 가지 예를 보여 줍니다.
exit script
unless A=1;
unless A=1
LOAD * from myfile.csv;
unless A=1
when B=2 drop table Tab1;
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 앱 및 스크립트에 대한 지역 설정 수정를 참조하십시오.
앱의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
첫 번째 데이터 집합(트랜잭션 id 1~7 포함)이 응용 프로그램에 로드됩니다. Unless 조건은 Transactions 테이블에 10개 미만의 행이 있는지 여부를 평가합니다. 이는 TRUE로 평가되므로 두 번째 데이터 집합(트랜잭션 id 8~14 포함)이 응용 프로그램에 로드됩니다. 두 번째 Unless 조건은 Transactions 테이블에 10개 미만의 레코드가 있는지 평가합니다. 이는 FALSE로 평가되므로 해당 스크립트가 종료됩니다.
예 3 – 다중 Unless 접두사
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 예에서는 하나의 트랜잭션을 포함하는 데이터 집합이 Transactions라는 테이블로 만들어집니다. 그런 다음 두 개의 중첩된 unless 문이 다음을 평가하는 'for' 루프가 트리거는 경우는 다음과 같습니다.
Transactions 테이블에 100개보다 많은 레코드가 없는 경우
Transactions 테이블의 레코드 수가 6의 배수가 아닌 경우
이러한 조건이 FALSE이면 추가로 7개의 레코드가 생성되어 기존 Transactions 테이블에 연결됩니다. 이 프로세스는 두 트랜잭션 중 하나가 값 TRUE를 반환할 때까지 반복됩니다.
로드 스크립트
Transactions:
Load
0 as id
Autogenerate 1;
For i = 1 to 100
unless NoOfRows('Transactions') > 100 unless mod(NoOfRows('Transactions'),6) = 0
Concatenate
Load
if(isnull(Peek(id)),1,peek(id)+1) as id
Autogenerate 7;
next i
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.id.
결과 테이블
id
0
1
2
3
4
5
+30 추가 행
'for' 루프에서 발생하는 중첩된 unless 문은 다음을 평가합니다.
Transactions 테이블에 100개보다 많은 행이 있습니까?
Transactions 테이블의 총 레코드 수가 6의 배수입니까?
두 unless 문 모두 값 FALSE를 반환할 때마다 추가로 7개의 레코드가 생성되어 기존 Transactions 테이블에 연결됩니다.
이러한 명령문은 값 FALSE를 5번 반환하며, 이때 Transactions 테이블에는 총 36개의 데이터 행이 있습니다.
그 후, 두 번째 Unless 문은 값 TRUE를 반환하므로 다음에 오는 LOAD 문은 더 이상 실행되지 않습니다.
이 페이지가 도움이 되었습니까?
이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!