Esempio 1
Exists
(Employee)
Restituisce -1 (True) se il valore di campo Employee nel record attuale esiste già in uno qualsiasi dei record letti in precedenza contenenti tale campo.
Le istruzioni Exists (Employee, Employee) e Exists (Employee) sono equivalenti.
Esempio 2
Exists(Employee,
'Bill')
Restituisce -1 (True) se il valore di campo 'Bill' viene trovato nel contenuto attuale del campo Employee.
Esempio 3
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;
Viene generata una tabella che può essere usata nella visualizzazione di una tabella con le dimensioni Employee e Address.
La clausola where, where Exists (Employee), significa che nella nuova tabella vengono caricati solo i nomi della tabella Citizens che sono presenti anche in Employees. L'istruzione Drop rimuove la tabella Employees per evitare confusione.
Risultati
|
|
Employee |
Address |
Bill | New York |
John | Miami |
Steve | Chicago |
Esempio 4
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;
La clausola where include not: where not Exists (Employee).
Ciò significa che nella nuova tabella vengono caricati solo i nomi della tabella Citizens che non sono presenti in Employees.
Si noti che sono presenti due valori per Lucy nella tabella Citizens, ma solo uno è incluso nella tabella risultante. Quando si carica la prima riga con il valore Lucy, esso viene incluso nel campo Employee. Quindi, quando viene controllata la seconda riga, il valore esiste già.
Risultati
Employee |
Indirizzo |
Mary |
London |
Lucy | Madrid |
Esempio 5
Questo esempio mostra come caricare tutti i valori.
Employees:
Load Employee As Name;
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;
Per ottenere tutti i valori per Lucy è stato necessario effettuare due modifiche:
-
È stato inserito un caricamento precedente per la tabella Employees in cui Employee è stato rinominato Name.
Load Employee As Name;
-
La condizione Where in Citizens è stata modificata in:
not Exists (Name, Employee).
Ciò crea campi per Name e Employee. Quando viene controllata la seconda riga con Lucy, il valore è ancora inesistente in Name.
Risultati
Employee |
Indirizzo |
Mary |
London |
Lucy | Madrid |
Lucy | Paris |