すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:条件式

最終更新日:Jun 21, 2026

このトピックでは、条件式の構文について説明します。また、式の使用例も示します。

次の表に、Simple Log Service でサポートされている条件式を示します。

重要

分析文で文字列を使用する場合は、文字列を一重引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 たとえば、'status' は「status」という文字列を示し、statusまたは "status" は「status」というフィールドを示します。

構文

説明

SQL でサポート

SPL でサポート

CASE 式

CASE WHEN condition1 THEN result1

[WHEN condition2 THEN result2]

[ELSE result3]

END

指定された条件に基づいてデータを分類します。

IF 式

IF(condition, result1)

condition が true と評価された場合、result1 が返されます。それ以外の場合は、null が返されます。

IF(condition, result1, result2)

condition が true と評価された場合、result1 が返されます。それ以外の場合は、result2 が返されます。

COALESCE 式

COALESCE(expression1, expression2, expression3...)

複数の式の中から最初の非 null 値を返します。

NULLIF 式

NULLIF(expression1, expression2)

2 つの式の値が同じかどうかを評価します。値が同じ場合は null が返されます。それ以外の場合は、最初の式の値が返されます。

×

TRY 式

TRY(expression)

式の呼び出し中に発生するエラーをキャプチャし、エラー発生時でも Simple Log Service がクエリと分析を続行できるようにします。

CASE 式

CASE 式はデータを分類します。

構文

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

パラメーター

パラメーター

説明

condition

このパラメーターの値は条件式です。

result1

返される結果です。

  • 例 1:http_user_agent フィールドの値からブラウザ情報を抽出します。次に、その情報を Chrome、Safari、および不明に分類し、3 つのタイプのページビュー (PV) 数を計算します。

    • クエリ文

      * |
      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
    • クエリと分析の結果には、各ブラウザ (http_user_agent) のページビュー (PV) が表示されます:Chrome (5563)、Safari (1842)、および不明 (1666)。

  • 例 2:異なる時点で送信されたリクエストの分布を照会します。

    • クエリ文

      * |
      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
    • クエリと分析の結果は 2 つのレコードを返します:request_timet100 の場合、PV は 1563542、request_timelarge の場合、PV は 533 です。

IF 式

IF 式はデータを分類します。この式は CASE 式と同様に機能します。

構文

  • condition が true と評価された場合、result1 が返されます。それ以外の場合は、null が返されます。

    IF(condition, result1)
  • condition が true と評価された場合、result1 が返されます。それ以外の場合は、result2 が返されます。

    IF(condition, result1, result2)

パラメーター

パラメーター

説明

condition

このパラメーターの値は条件式です。

result

返される結果です。

ステータスコードが 200 であるリクエストの、全リクエストに対する割合を計算します。

  • クエリ文

    * |
    SELECT
      sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS status_200_percentag
  • クエリと分析の結果:status_200_percentag の値は 0.884686775009848 です。

COALESCE 式

COALESCE 式は、複数の式の中から最初の非 null 値を返します。

構文

COALESCE(expression1, expression2, expression3...)

パラメーター

パラメーター

説明

expression

このパラメーターの値は、任意の型の式です。

前日の経費と前週同日の経費の比率を計算します。

  • クエリ文

    * |
    SELECT
      compare("yesterday's expenses", 604800) AS diff
    FROM  (
        SELECT
          COALESCE(sum(PretaxAmount), 0) AS "yesterday's expenses"
        FROM log
      )
  • クエリと分析の結果

    • 値 6514393413.0 は、前日の経費を示します。

    • 値 19578267596.0 は、前週同日の経費を示します。

    • 値 0.33273594719539659 は、前日の経費と前週同日の経費の比率を示します。

NULLIF 式

NULLIF 式は、2 つの式の値が同じかどうかを評価します。値が同じ場合は null が返されます。それ以外の場合は、最初の式の値が返されます。

構文

NULLIF(expression1, expression2)

パラメーター

パラメーター

説明

expression

このパラメーターの値は、有効なスカラー式です。

client_ip フィールドと host フィールドの値が同じかどうかを評価します。値が異なる場合は、client_ip フィールドの値が返されます。

  • クエリ文

    * | SELECT NULLIF(client_ip,host)
  • クエリおよび分析結果: クエリは、NULLIF(client_ip,host) の結果を表示する単一の列 _col0 を返します。この関数は、client_iphost と異なる場合は client_ip の値を返し、同じ場合は NULL を返します。

TRY 式

TRY 式は、式の呼び出し中に発生するエラーをキャプチャし、エラーが発生した場合でも Simple Log Service がデータのクエリと分析を続行できるようにします。

構文

TRY(expression)

パラメーター

パラメーター

説明

expression

このパラメーターの値は、任意の型の式です。

regexp_extract 式の呼び出し時にエラーが発生した場合、TRY 式がエラーをキャプチャし、Simple Log Service はデータのクエリと分析を続行します。クエリと分析の結果が返されます。

  • クエリ文

    * |
    SELECT
      TRY(regexp_extract(request_uri, '.*\/(file.*)', 1)) AS file,
      count(*) AS count
    GROUP BY
      file
  • クエリと分析の結果には、抽出された各ファイル名のカウントが表示されます。例:file-5 (851)、file-7 (928)、file-3 (837)、および file-4 (863)。