Exists - 스크립트 함수
Exists()는 특정 필드 값이 데이터 로드 스크립트의 필드에 이미 로드되었는지 여부를 판단합니다. 이 함수는 TRUE 또는 FALSE를 반환하므로 LOAD 문의 where 절 또는 IF 문에서 사용할 수 있습니다.
Syntax:
Exists(field_name [, expr])
Return data type: 부울
Arguments:
인수 | 설명 |
---|---|
field_name |
값을 검색할 필드의 이름입니다. 따옴표 없이 명시적 필드 이름을 사용할 수 있습니다. 스크립트에서 필드가 이미 로드되어 있어야 합니다. 즉, 스크립트에서 나중 절에 로드된 필드를 참조할 수 없습니다. |
expr |
존재하는지 확인하려는 값입니다. 현재 load 문에서 하나 또는 여러 개의 필드를 참조하는 명시적 값 또는 표현식을 사용할 수 있습니다. 정보 메모현재 load 문에 포함되지 않은 필드는 참조할 수 없습니다.
이 인수는 선택 사항입니다. 이 인수를 생략하면 함수는 현재 레코드에 field_name 값이 이미 존재하는지 확인합니다. |
데이터 사용 예:
Example:
Exists (Employee)
현재 레코드의 Employee 필드 값이 이전에 읽은 레코드 중 해당 필드가 포함된 레코드에 이미 존재할 경우 -1(True)을 반환합니다.
Exists (Employee, Employee) 및 Exists (Employee) 문은 동등합니다.
Example:
Exists(Employee, 'Bill')
필드 값 'Bill'이 Employee 필드의 현재 내용에서 발견되는 경우 -1(True)을 반환합니다.
Example:
이 결과는 Employee 및 Address 차원을 사용하여 테이블 시각화에서 사용할 수 있는 테이블에 표시됩니다.
where 절: where Exists (Employee)은 Citizens 테이블의 이름 중 Employees에도 있는 이름만 새 테이블로 로드합니다. Drop 문은 혼란을 피하기 위해 테이블 Employees를 제거합니다.
Employee | Address |
Bill | New York |
John | Miami |
Steve | Chicago |
Example:
where 절에 not이 포함됩니다(where not Exists (Employee, Name)).
이는 Citizens 테이블의 이름 중 Employees에 없는 이름만 새 테이블로 로드됨을 의미합니다.
Citizens 테이블에 Lucy의 경우 두 개의 값이 있지만 결과 테이블에는 하나만 포함됩니다. 첫 번째 행을 로드하면 값이 Employee 기호 테이블에 포함됩니다. 따라서 두 번째 행을 확인하면 이제 값이 존재합니다.
다음 예제에서는 모든 값을 로드하는 방법을 보여 줍니다.
Employee | 주소 |
---|---|
Mary | London |
Lucy | Madrid |
Example:
Lucy에 대한 모든 값을 가져오려면 두 가지를 변경해야 합니다.
-
Employee의 이름을 Name으로 바꾸는 Employees에 선행 load를 추가합니다.
Load Employee As Name, ID, Salary;
-
Citizens에서 Where 조건을 다음으로 변경합니다.
not Exists (Name, Employee)
이렇게 하면 Name 및 Employee에 대한 다른 기호 테이블이 생성됩니다. Lucy에 대한 두 번째 행을 확인하면 여전히 Name에 존재하지 않습니다.
Employee | 주소 |
---|---|
Mary | London |
Lucy | Madrid |
Lucy | Paris |