Exists - función de script
Exists() determina si un valor de campo específico ya se ha cargado en el campo en el script de carga de datos. La función devuelve TRUE o FALSE, así que se puede utilizar en la cláusula where de una sentencia LOAD o IF.
Syntax:
Exists(field_name [, expr])
Return data type: Booleano
Arguments:
Argumento | Descripción |
---|---|
field_name |
El nombre del campo donde desea buscar un valor. Puede usar un nombre de campo explícito sin comillas. El campo ya debe haber sido cargado por el script. Eso significa que no puede hacer referencia a un campo que se cargue mediante una cláusula situada más abajo en el script. |
expr |
El valor que desea comprobar si existe. Puede usar un valor explícito o una expresión que haga referencia a uno o varios campos en la sentencia load actual. Nota informativaNo puede hacer referencia a campos que no estén incluidos en la sentencia load actual.
Este argumento es opcional. Si lo omite, la función verificará si el valor de field_name en el registro actual ya existe. |
Datos utilizados en el ejemplo:
Example:
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.
Example:
Exists(Employee, 'Bill')
Devuelve -1 (True) si el valor del campo 'Bill' se encuentra en el contenido actual del campo Employee.
Example:
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.
Employee | Address |
Bill | New York |
John | Miami |
Steve | Chicago |
Example:
La cláusula where incluye not: where not Exists (Employee, Name).
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, el valor se incluye en la tabla de símbolos Employee. Por lo tanto, cuando se comprueba la segunda línea, el valor ahora existe.
El ejemplo a continuación muestra cómo cargar todos los valores.
Empleado | Dirección |
---|---|
Mary | London |
Lucy | Madrid |
Example:
Para poder obtener todos los valores de Lucy, necesita cambiar dos cosas:
-
Agregue un load precedente a Employees donde debe cambiar el nombre de Employee a Name.
Load Employee As Name, ID, Salary;
-
Cambie la condición Where en Citizens a:
not Exists (Name, Employee).
Esto creará diferentes tablas de símbolos para Name y Employee. Al comprobar la segunda fila de Lucy, todavía no existe en Name.
Empleado | Dirección |
---|---|
Mary | London |
Lucy | Madrid |
Lucy | Paris |