Lógica condicional en consultas de AQL

Utilice la lógica condicional en las consultas de AQL mediante las expresiones IF y CASE.

Utilice la lógica condicional en las consultas AQL para proporcionar opciones alternativas, en función de si la condición de cláusula es verdadera o falsa.

Sentencias CASE

Las expresiones CASE devuelven un resultado booleano verdadero o falso. Cuando una expresión se devuelve como verdadera, se devuelve el valor de esa expresión CASE y se detiene el proceso. Si el resultado booleano es falso, se devuelve el valor de la cláusula ELSE.

En el ejemplo siguiente, cuando el nombre de usuario es root, el valor de la expresión CASE que se devuelve esAdmin root. Cuando el nombre de usuario es admin, el valor de la expresión CASE que se devuelve esAdmin user. Si las expresiones CASE devuelven un valor booleano false, se devuelve el valor de la cláusula ELSE.

SELECT CASE username 
WHEN 'root' 
THEN 'Admin root' 
WHEN 'admin' 
THEN 'Admin user' 
ELSE 'other' END FROM events 

Cuando la sentencia WHEN es verdadera, se procesa la sentencia THEN, de lo contrario el proceso finaliza.

Sentencias IF, THEN, ELSE

Las sentencias entre THEN y ELSE se procesan cuando la sentencia IF es verdadera.

En este ejemplo, cuando la condición IF es verdadera, se devuelve 'ADMIN' cuando el nombre de usuario es 'root'; de lo contrario, el nombre de usuario se devuelve del registro de sucesos.

SELECT sourceip, 
IF username = 'root' 
THEN 'ADMIN' 
ELSE username AS user FROM events 

En el ejemplo siguiente, si el registro no tiene nombre de usuario, obténgalo del modelo de activos. De lo contrario, el nombre de usuario se devuelve desde el registro de sucesos.

SELECT sourceip,
IF username IS NULL 
THEN ASSETUSER(sourceip)
ELSE username AS username FROM events
GROUP BY username 
LAST 2 DAYS