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).