Funciones lógicas
La siguiente lista muestra las funciones lógicas que se pueden utilizar en expresiones.
| Función | Descripción |
|---|---|
Case | La declaración case tiene dos formas distintas. Sencilla:
La expresión De búsqueda:
Devuelve Si pueden introducirse expresiones, se evalúan de izquierda a derecha. Consulte la información correspondiente más abajo. Ejemplo:
Para obtener más ejemplos, consulte la información a continuación y Columnas calculadas basadas en condiciones. |
If(Arg1,Arg2,Arg3)
| Devuelve Arg2 si Arg1=true, y Arg3 si Arg1=false.Dado que Arg1 es booleano, el resultado suele ser una comparación.Arg2 y Arg3 pueden ser de cualquier tipo, pero deben coincidir en esto o ser nulos.El segundo y tercer argumento solo procesan subconjuntos de las filas, lo cual afecta a todos los métodos de acumulación y basados en columnas.Consulte la información correspondiente más abajo. Ejemplos:
Para obtener más ejemplos, consulte la información a continuación y Columnas calculadas basadas en condiciones. |
Is Not Null
| Se usa en declaraciones con If o Case para determinar si una expresión produce un valor vacío o nulo.Ejemplo:
Si una expresión incluye valores vacíos (nulos), puede usar la función |
Is Null
| Se usa en declaraciones con Ejemplo:
Si una expresión incluye valores vacíos (nulos), puede usar la función |
Más información sobre el uso de "if" en expresiones:
Cuando utiliza una declaración con "If" en una expresión, la condición del primer argumento limita los valores para su evaluación en el tercer argumento.Para comprender su funcionamiento, escoja una columna de número entero sencillo como ejemplo:
| Col1 |
| 1 |
| 2 |
| 3 |
Introduzca una columna calculada con la siguiente expresión:
if(Col1 < 2,
Max(Col1), Max(Col1))
Esta acción provocará una columna nueva con dos valores diferentes; uno para el caso en el que el máximo de todos los valores inferiores a 2 y otro que muestra el valor máximo para los demás valores (que también es el máximo de toda la columna):
| Col1 | if(Col1 < 2, Max(Col1), Max(Col1))
|
| 1 | 1 |
| 2 | 3 |
| 3 | 3 |
La función If está diseñada para dividir la columna en dos grupos y, después, continuar con la evaluación de la expresión en los grupos nuevos.
Si en cambio utiliza una expresión Percentile, obtendrá distintos resultados en la misma expresión de percentil en función de cómo haya dividido la primera condición la columna:
| Col2 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
Introduzca dos columnas con las dos expresiones siguientes:
if (Col2 < 4, 0,
Percentile(Col2, 70))
if (Col2 < 6, 0,
Percentile(Col2, 70))
A continuación, obtendrá este resultado:
| Col2 | if (Col2 < 4, 0,
Percentile(Col2, 70))
| if (Col2 < 6,
0, Percentile(Col2, 70))
|
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 0 | 0 |
| 4 | 8,2 | 0 |
| 5 | 8,2 | 0 |
| 6 | 8,2 | 8,8 |
| 7 | 8,2 | 8,8 |
| 8 | 8,2 | 8,8 |
| 9 | 8,2 | 8,8 |
| 10 | 8,2 | 8,8 |
If".Más información sobre el uso de Case en expresiones:
Al trabajar con expresiones Case, la condición posterior a "when" se calcula en toda la columna.El argumento posterior a "then" se calcula en las filas definidas por la condición "when".Si hay varios pares "when- then" incluidos en la expresión, un "then" queda limitado por todas las condiciones anteriores, así como por la última.
A continuación, se muestra un ejemplo con una columna de números enteros sencillos:
| Col1 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
Introduzca dos columnas calculadas (llamadas Case Min y Case Max) con las siguientes expresiones:
Case Min:
case
when [Col1]<Avg([Col1]) then Min([Col1])
when [Col1]<(Avg([Col1]) + 1) then Min([Col1])
else Min([Col1])
endCase Max:
case
when [Col1] < Avg([Col1]) then Max([Col1])
when [Col1] < (Avg([Col1]) + 1) then Max([Col1])
else Max([Col1])
endEl resultado será el siguiente:
| Col1 | Case Min | Case Max |
| 1 | 1 | 4 |
| 2 | 1 | 4 |
| 3 | 1 | 4 |
| 4 | 1 | 4 |
| 5 | 5 | 5 |
| 6 | 6 | 8 |
| 7 | 6 | 8 |
| 8 | 6 | 8 |