Tous les produits
Search
Centre de documentation

Simple Log Service:Expressions conditionnelles

Dernière mise à jour :Aug 18, 2026

Cette rubrique décrit la syntaxe des expressions conditionnelles et fournit des exemples d'utilisation.

Le tableau suivant présente les expressions conditionnelles prises en charge par Simple Log Service.

Important

Pour utiliser des chaînes de caractères dans les instructions analytiques, entourez-les de guillemets simples (''). Les chaînes non entourées de guillemets ou celles entourées de guillemets doubles ("") désignent des noms de champs ou de colonnes. Par exemple, 'status' indique la chaîne de caractères « status », tandis que status ou "status" fait référence au champ de journal « status ».

Expression

Syntaxe

Description

Prise en charge dans SQL

Prise en charge dans SPL

Expression CASE WHEN

CASE WHEN condition1 THEN result1

[WHEN condition2 THEN result2]

[ELSE result3]

END

Classe les données selon des conditions spécifiées.

Expression IF

IF(condition, result1)

Si condition est vraie, renvoie result1. Sinon, renvoie la valeur null.

IF(condition, result1, result2)

Si condition est vraie, renvoie result1. Sinon, renvoie result2.

Expression COALESCE

COALESCE(expression1, expression2, expression3...)

Renvoie la première valeur non nulle parmi plusieurs expressions.

Expression NULLIF

NULLIF(expression1, expression2)

Évalue si les valeurs de deux expressions sont identiques. Si elles le sont, renvoie la valeur null. Sinon, renvoie la valeur de la première expression.

×

Expression TRY

TRY(expression)

Capture les erreurs survenant lors de l'appel d'une expression et garantit que Simple Log Service peut continuer à interroger et analyser les données même en cas d'erreur.

Expression CASE WHEN

L'expression CASE WHEN permet de classer les données.

Syntaxe

CASE WHEN condition1 THEN result1
     [WHEN condition2 THEN result2]
     [ELSE result3]
END

Paramètres

Paramètre

Description

condition

La valeur de ce paramètre est une expression conditionnelle.

result1

Résultat renvoyé.

Exemples

  • Exemple 1 : extrayez les informations du navigateur à partir de la valeur du champ http_user_agent. Classez ensuite ces informations dans les types Chrome, Safari et inconnu, puis calculez le nombre de pages vues (PV) pour chacun de ces trois types.

    • Instruction de requête

      * |
      SELECT
        CASE
          WHEN http_user_agent like '%Chrome%' then 'Chrome'
          WHEN http_user_agent like '%Safari%' then 'Safari'
          ELSE 'unknown'
        END AS http_user_agent,
        count(*) AS pv
      GROUP BY
        http_user_agent
    • Les résultats de la requête et de l'analyse indiquent le nombre de pages vues (PV) pour chaque navigateur (http_user_agent) : Chrome (5563), Safari (1842) et inconnu (1666).

  • Exemple 2 : interrogez la distribution des requêtes envoyées à différents moments.

    • Instruction de requête

      * |
      SELECT
        CASE
          WHEN request_time < 10 then 't10'
          WHEN request_time < 100 then 't100'
          WHEN request_time < 1000 then 't1000'
          WHEN request_time < 10000 then 't10000'
          ELSE 'large'
        END AS request_time,
        count(*) AS pv
      GROUP BY
        request_time
    • Les résultats de la requête et de l'analyse renvoient deux enregistrements : le nombre de PV est de 1 563 542 lorsque request_time vaut t100, et de 533 lorsque request_time vaut large.

Expression IF

L'expression IF permet de classer les données. Son fonctionnement est similaire à celui de l'expression CASE WHEN.

Syntaxe

  • Si condition est vraie, renvoie result1. Sinon, renvoie la valeur null.

    IF(condition, result1)
  • Si condition est vraie, renvoie result1. Sinon, renvoie result2.

    IF(condition, result1, result2)

Paramètres

Paramètre

Description

condition

La valeur de ce paramètre est une expression conditionnelle.

result

Résultat renvoyé.

Exemples

Calculez la proportion de requêtes dont le code d'état est 200 par rapport à l'ensemble des requêtes.

  • Instruction de requête

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • Résultats de la requête et de l'analyse : la valeur de status_200_percentage est 0.884686775009848.

Expression COALESCE

L'expression COALESCE renvoie la première valeur non nulle parmi plusieurs expressions.

Syntaxe

COALESCE(expression1, expression2, expression3...)

Paramètres

Paramètre

Description

expression

La valeur de ce paramètre est une expression de type arbitraire.

Exemples

Calculez le ratio entre les dépenses de la veille et celles du même jour du mois précédent.

  • Instruction de requête

    * |
    SELECT
      compare("yesterday's expenses", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "yesterday's expenses"
        FROM log
      )
  • Résultats de la requête et de l'analyse

    • La valeur 6514393413.0 correspond aux dépenses de la veille.

    • La valeur 19578267596.0 correspond aux dépenses du même jour du mois précédent.

    • La valeur 0.33273594719539659 représente le ratio entre les dépenses de la veille et celles du même jour du mois précédent.

Expression NULLIF

L'expression NULLIF évalue si les valeurs de deux expressions sont identiques. Si elles le sont, renvoie la valeur null. Sinon, renvoie la valeur de la première expression.

Syntaxe

NULLIF(expression1, expression2)

Paramètres

Paramètre

Description

expression

La valeur de ce paramètre est une expression scalaire valide.

Exemples

Évaluez si les valeurs des champs client_ip et host sont identiques. Si les valeurs diffèrent, renvoie la valeur du champ client_ip.

  • Instruction de requête

    * | SELECT NULLIF(client_ip,host)
  • Résultats de la requête et de l'analyse : la requête renvoie une seule colonne _col0, qui affiche le résultat de NULLIF(client_ip,host). Cette fonction renvoie la valeur de client_ip si client_ip diffère de host, et renvoie NULL si elles sont identiques.

Expression TRY

L'expression TRY capture les erreurs survenant lors de l'appel d'une expression et garantit que Simple Log Service peut continuer à interroger et analyser les données même en cas d'erreur.

Syntaxe

TRY(expression)

Paramètres

Paramètre

Description

expression

La valeur de ce paramètre est une expression de type arbitraire.

Exemples

Si une erreur se produit lors de l'appel de l'expression regexp_extract, l'expression TRY capture cette erreur et Simple Log Service continue d'interroger et d'analyser les données. Les résultats de la requête et de l'analyse sont alors renvoyés.

  • Instruction de requête

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • Les résultats de la requête et de l'analyse affichent un compte pour chaque nom de fichier extrait. Par exemple : file-5 (851), file-7 (928), file-3 (837) et file-4 (863).