Ejemplo 1
Exists (Employee)
Devuelve -1 (True) si el valor del campo Employee en el registro actual ya existe en cualquier otro registro leído previamente que contenga ese campo.
Las sentencias Exists (Employee, Employee) y Exists (Employee) son equivalentes.
Ejemplo 2
Exists(Employee, 'Bill')
Devuelve -1 (True) si el valor del campo 'Bill' se encuentra en el contenido actual del campo Employee.
Ejemplo 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;
Esto da como resultado una tabla que puede usar como una visualización de tabla utilizando las dimensiones Employee y Address.
La cláusula where, where Exists (Employee), significa que solo se cargarán en la nueva tabla los nombres de la tabla Citizens que también estén en Employees. La sentencia Drop elimina la tabla Employees para evitar la confusión.
Resultados
|
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
Ejemplo 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 cláusula where incluye not: where not Exists (Employee).
Esto significa que solo se cargarán en la nueva tabla los nombres de la tabla Citizens que no estén en Employees.
Tenga en cuenta que hay dos valores para Lucy en la tabla Citizens, pero solo uno está incluido en la tabla de resultados. Cuando se carga la primera fila con el valor Lucy, este se incluye en el campo Employee. Por lo tanto, cuando se comprueba la segunda línea, el valor ya existe.
Resultados
Empleado |
Dirección |
Mary |
London |
Lucy |
Madrid |
Ejemplo 5
Este ejemplo muestra cómo cargar todos los valores.
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;
Para poder obtener todos los valores de Lucy, se han modificado dos cosas:
-
Se ha insertado un load precedente a la tabla Employees donde Employee se ha renombrado a Name.
Load Employee As Name;
-
La condición Where en Citizens se ha cambiado a:
not Exists (Name, Employee).
Esto crea campos para Name y Employee. Al comprobar la segunda fila de Lucy, todavía no existe en Name.
Resultados
Empleado |
Dirección |
Mary |
London |
Lucy |
Madrid |
Lucy |
Paris |