Exists
(Employee)
|
現在のレコード内の項目 Employee の値が、その項目を含む読み取り済みのレコード内にすでに存在してれば、-1 (True) を返します。
ステートメント Exists (Employee, Employee) と Exists (Employee) は同じ働きをします。
|
Exists(Employee,
'Bill')
|
項目値 'Bill' が項目 Employee の現在のコンテンツに含まれていれば、-1 (True) を返します。
|
Employees:
LOAD * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Employee|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Madrid
Lucy|Paris
John|Miami
] (delimiter is '|') where Exists (Employee);
Drop Tables Employees;
|
この結果は、Employee 軸と Address 軸を使用してテーブル ビジュアライゼーションで使用できるテーブルとなります。
where 節 where Exists (Employee) は、テーブル Citizens から Employees にも存在する Name のみを新しいテーブルにロードすることを意味します。Drop ステートメントは、混同を避けるためにテーブル Employees を削除します。
結果
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
|
|
Employees:
Load * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Employee|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Madrid
Lucy|Paris
John|Miami
] (delimiter is '|') where not Exists (Employee);
Drop Tables Employees;
|
where 節に not が含まれています: where not Exists (Employee, Name)
つまり、テーブル Citizens から Employees に存在しない名前のみが新しいテーブルにロードされます。
Citizens テーブルには Lucy の値が 2 つありますが、結果テーブルに含まれているのは 1 つだけであることに注目してください。最初の行をロードすると、値が Employee シンボル テーブルに含められます。このため、2 行目を確認すると、その時点で値が存在しています。
次の例は、すべての値をロードする方法を示しています。
結果
|
Employee |
Address |
Mary |
London |
Lucy |
Madrid |
|
Employees: Load Employee As Name, ID, Salary; LOAD * inline [ Employee|ID|Salary Bill|001|20000 John|002|30000 Steve|003|35000 ] (delimiter is '|'); Citizens: Load * inline [ Employee|Address Bill|New York Mary|London Steve|Chicago Lucy|Madrid Lucy|Paris John|Miami ] (delimiter is '|') where not Exists (Name, Employee); Drop Tables Employees;
|
Lucy のすべての値を取得できるようにするには、次の 2 つの変更を行う必要があります。
-
Employees の前に Load を追加し、そこで名前を Employee から Name に変更します。
Load Employee As Name, ID, Salary;
-
Citizens の Where 条件を次のように変更します。
not Exists (Name, Employee).
これで、Name および Employee について別々のシンボル テーブルが作成されます。Lucy の 2 行目を確認すると、引き続き Name には存在していません。
Employee |
Address |
Mary |
London |
Lucy |
Madrid |
Lucy |
Paris |
|