AQL 조회의 조건부 로직

IF 및 CASE 표현식을 사용하여 AQL 조회에서 조건부 로직을 사용합니다.

절 조건이 true로 평가되는지 false로 평가되는지에 따라 AQL 조회의 조건부 로직을 사용하여 대체 옵션을 제공하십시오.

CASE문

CASE 표현식은 Boolean true 또는 false 결과를 리턴합니다. 표현식이 true로 리턴되면 해당 CASE 표현식의 값이 리턴되고 처리가 중지됩니다. Boolean 결과가 false이면 ELSE절의 값이 리턴됩니다.

다음 예제에서 사용자 이름이 루트인 경우 리턴되는 CASE 표현식의 값은 다음과 같습니다.Admin root. 사용자 이름이 admin인 경우 리턴되는 CASE 표현식의 값은 다음과 같습니다.Admin user. CASE 표현식이 부울 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문

THEN과 ELSE 사이의 명령문은 IF문이 true일 때 처리됩니다.

이 예제에서는 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