Todos os produtos
Search
Central de documentação

Simple Log Service:Expressões condicionais

Última atualização: Jul 03, 2026

Este tópico descreve a sintaxe das expressões condicionais e fornece exemplos de uso.

A tabela a seguir descreve as expressões condicionais compatíveis com o Simple Log Service.

Importante

Para usar strings em instruções analíticas, coloque-as entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo, 'status' indica a string status, enquanto status ou "status" indica o campo de log status.

Expressão

Sintaxe

Descrição

Compatível com SQL

Compatível com SPL

Expressão CASE WHEN

CASE WHEN condition1 THEN result1

[WHEN condition2 THEN result2]

[ELSE result3]

END

Classifica dados com base em condições especificadas.

√

√

Expressão IF

IF(condition, result1)

Se condition for verdadeira, retorna result1. Caso contrário, retorna null.

√

√

IF(condition, result1, result2)

Se condition for verdadeira, retorna result1. Caso contrário, retorna result2.

√

√

Expressão COALESCE

COALESCE(expression1, expression2, expression3...)

Retorna o primeiro valor não nulo entre várias expressões.

√

√

Expressão NULLIF

NULLIF(expression1, expression2)

Verifica se os valores de duas expressões são iguais. Se forem iguais, retorna null. Caso contrário, retorna o valor da primeira expressão.

√

×

Expressão TRY

TRY(expression)

Captura erros durante a execução de uma expressão e garante que o Simple Log Service continue consultando e analisando dados mesmo se ocorrerem falhas.

√

√

Expressão CASE WHEN

A expressão CASE WHEN classifica dados.

Syntax

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

Parameters

Parâmetro

Descrição

condition

O valor deste parâmetro é uma expressão condicional.

result1

Resultado retornado.

Examples

  • Exemplo 1: Extrair informações do navegador no campo http_user_agent. Classificar as informações nos tipos Chrome, Safari e desconhecido e calcular o número de visualizações de página (PVs) para cada tipo.

    • Instrução de consulta

      * |
      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
    • Os resultados da consulta e análise mostram as visualizações de página (PV) para cada navegador (http_user_agent): Chrome (5563), Safari (1842) e desconhecido (1666).

  • Exemplo 2: Consultar a distribuição de solicitações enviadas em diferentes intervalos de tempo.

    • Instrução de consulta

      * |
      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
    • Os resultados retornam dois registros: PV de 1563542 quando request_time é t100 e 533 quando request_time é large.

Expressão IF

A expressão IF classifica dados e funciona de maneira semelhante à expressão CASE WHEN.

Syntax

  • Se condition for verdadeira, retorna result1. Caso contrário, retorna null.

    IF(condition, result1)
  • Se condition for verdadeira, retorna result1. Caso contrário, retorna result2.

    IF(condition, result1, result2)

Parameters

Parâmetro

Descrição

condition

O valor deste parâmetro é uma expressão condicional.

result

Resultado retornado.

Examples

Calcular a proporção de solicitações com código de status 200 em relação ao total.

  • Instrução de consulta

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • Resultados da consulta e análise: O valor de status_200_percentage é 0.884686775009848.

Expressão COALESCE

A expressão COALESCE retorna o primeiro valor não nulo entre várias expressões.

Syntax

COALESCE(expression1, expression2, expression3...)

Parameters

Parâmetro

Descrição

expression

Expressão de qualquer tipo.

Examples

Calcular a razão entre as despesas do dia anterior e as do mesmo dia no mês anterior.

  • Instrução de consulta

    * |
    SELECT
      compare("yesterday's expenses", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "yesterday's expenses"
        FROM log
      )
  • Resultados da consulta e análise

    • O valor 6514393413.0 representa as despesas do dia anterior.

    • O valor 19578267596.0 representa as despesas do mesmo dia no mês anterior.

    • O valor 0.33273594719539659 indica a razão entre as despesas do dia anterior e as do mesmo dia no mês anterior.

Expressão NULLIF

A expressão NULLIF verifica se os valores de duas expressões são iguais. Se forem iguais, retorna null. Caso contrário, retorna o valor da primeira expressão.

Syntax

NULLIF(expression1, expression2)

Parameters

Parâmetro

Descrição

expression

Expressão escalar válida.

Examples

Verificar se os valores dos campos client_ip e host são iguais. Se forem diferentes, retorna o valor do campo client_ip.

  • Instrução de consulta

    * | SELECT NULLIF(client_ip,host)
  • Resultados da consulta e análise: A consulta retorna uma única coluna _col0 com o resultado de NULLIF(client_ip,host). Esta função retorna o valor de client_ip se for diferente de host e NULL se forem iguais.

Expressão TRY

A expressão TRY captura erros durante a execução de uma expressão e garante que o Simple Log Service continue consultando e analisando dados mesmo se ocorrerem falhas.

Syntax

TRY(expression)

Parameters

Parâmetro

Descrição

expression

Expressão de qualquer tipo.

Examples

Se ocorrer um erro durante a execução da expressão regexp_extract, a expressão TRY capturará o erro e o Simple Log Service continuará consultando e analisando dados. Os resultados da consulta e análise serão retornados normalmente.

  • Instrução de consulta

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • Os resultados mostram uma contagem para cada nome de arquivo extraído. Exemplo: file-5 (851), file-7 (928), file-3 (837) e file-4 (863).