AQL 照会での条件付きロジック
AQL 照会で条件付きロジックを使用するには、IF 式と CASE 式を使用します。
AQL 照会で条件付きロジックを使用して、節条件が true または false のいずれに評価されるかに応じて、代替オプションを提供します。
CASE ステートメント
CASE 式は、ブール値の結果として true または false を返します。 式が true として返された場合、その CASE 式の値が返され、処理が停止されます。 ブール値の結果が false の場合、ELSE 節の値が返されます。
以下の例では、ユーザー名が root の場合、返される CASE 式の値は以下のようになります。Admin rootユーザー名が admin の場合、返される CASE 式の値は以下のようになります。Admin userCASE 式がブール値の false を返した場合は、ELSE 節の値が返されます。
SELECT CASE username
WHEN 'root'
THEN 'Admin root'
WHEN 'admin'
THEN 'Admin user'
ELSE 'other' END FROM events WHEN ステートメントが true の場合、THEN ステートメントが処理されます。それ以外の場合は、処理が終了します。
IF ステートメント、THEN ステートメント、ELSE ステートメント
IF ステートメントが true の場合、THEN と ELSE の間のステートメントが処理されます。
以下の例では、IF 条件が true であるとき、(つまり) ユーザー名が 'root' の場合は 'ADMIN' が返され、それ以外の場合はイベント・ログにあるユーザー名が返されます。
SELECT sourceip,
IF username = 'root'
THEN 'ADMIN'
ELSE username AS user FROM events 以下の例では、ログにユーザー名がない場合、アセット・モデルから取得します。 それ以外の場合、ユーザー名はイベント・ログから返されます。
SELECT sourceip,
IF username IS NULL
THEN ASSETUSER(sourceip)
ELSE username AS username FROM events
GROUP BY username
LAST 2 DAYS