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

Simple Log Service:比較演算子

最終更新日:Aug 26, 2024

比較演算子は、パラメータ値を比較するために使用される。 double、bigint、varchar、timestamp、およびdateのデータ型の値を比較できます。 このトピックでは、比較演算子の構文について説明します。 このトピックでは、比較演算子の使用方法の例も示します。

次の表に、Simple Log Serviceでサポートされている比較演算子を示します。

重要

分析ステートメントで文字列を使用する場合は、文字列を単一引用符 (')で囲む必要があります。 二重引用符 (") で囲まれていない、または囲まれている文字列は、フィールド名または列名を示します。 例えば、 'status' はステータスの文字列を示し、status または "status" はステータスログフィールドを示します。

演算子

構文

説明

SQLでサポート

SPLでサポート

リレーショナルオペレーター

x < y

xyより小さい場合、trueが返されます。

x > y

xyより大きい場合、trueが返されます。

x <= y

xy以下の場合、trueが返されます。

x >= y

xy以上の場合、trueが返されます。

x=y

xyに等しい場合、trueが返されます。

x <> y

xyと等しくない場合、trueが返されます。

x! =y

xyと等しくない場合、trueが返されます。

すべての演算子

xリレーショナル演算子ALL( サブクエリ)

xがすべての条件を満たす場合、trueが返されます。

×

任意のオペレーター

xリレーショナル演算子ANY( サブクエリ)

xがいずれかの条件を満たす場合、trueが返されます。

×

BETWEEN演算子

x yzの間

xyzの間にある場合、trueが返されます。

DISTINCT演算子

xyから離れています

xyと等しくない場合、trueが返されます。

×

xyから離れていません

xyに等しい場合、trueが返されます。

×

LIKE演算子

x LIKEパターン [エスケープ 'escape_character ']

文字列内の指定された文字パターンと一致します。 文字列は大文字と小文字を区別します。

いくつかの演算子

xリレーショナル演算子SOME( サブクエリ)

xがいずれかの条件を満たす場合、trueが返されます。

×

GREATEST演算子

GREATEST( xy ...)

xyの大きい方の値を取得します。

×

LEASTオペレータ

LEAST( xy ...)

xyの小さい値を取得します。

×

NULL演算子

x IS NULL

xがnullの場合、trueが返されます。

x IS NOT NULL

xがnullでない場合、trueが返されます。

関係演算子

リレーショナル演算子はxyを比較します。 条件が満たされると、trueが返されます。

構文

構文

説明

x < y

xyより小さい。

x > y

xyより大きい。

x <= y

xy以下である。

x >= y

xy以上である。

x=y

xyに等しい。

x <> y

xyと等しくない。

x! =y

xyと等しくない。

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値のデータ型

ブール型。

  • 例1: 前日からのログの照会。

    • クエリ文

      * |
      SELECT
        *
      FROM  log
      WHERE
        __time__ < to_unixtime(current_date)
        AND __time__ > to_unixtime(date_add('day', -1, current_date))
    • クエリと分析結果 current_date

  • 例2: 電子商取引会社Aは、アクセスログ内のmobileおよびclient_ipフィールドを使用して、会社のウェブサイトにアクセスするために使用されるipアドレスとは異なる場所からの電話番号を有する顧客を見つける。

    • サンプルフィールド

      mobile:1881111****
      client_ip:192.168.2.0
    • クエリ文

      * |
      SELECT
        mobile,
        client_ip,
        count(*) AS PV
      WHERE
        mobile_city(mobile) != ip_to_city(client_ip)
        AND ip_to_city(client_ip) != ''
      GROUP BY
        client_ip,
        mobile
      ORDER BY
        PV DESC
    • クエリと分析結果 mobile_city

すべての演算子

ALL演算子は、xがすべての条件を満たすかどうかを判断します。 すべての条件が満たされると、trueが返されます。

構文

x relational operator ALL(subquery)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

リレーショナルオペレーター

このパラメーターの値は関係演算子です。 有効な値: < > <= >= = <> ! =

重要

ALL演算子はリレーショナル演算子に従う必要があります。 リレーショナルオペレーター: < > <= >= = <> ! =

サブクエリ

このパラメーターの値は、SQLサブクエリです。

戻り値のデータ型

ブール型。

インスタンスi-01に関連する各リクエストがステータスコード200で応答されているかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    status:200
  • クエリ文

    * | select 200 = ALL(select status where instance_id='i-01')
  • クエリと分析結果 all

任意のオペレーター

ANY演算子は、xが条件の1つを満たすかどうかを判断します。 いずれかの条件が満たされると、trueが返されます。

構文

x relational operator ANY(subquery)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

リレーショナルオペレーター

このパラメーターの値は関係演算子です。 有効な値: < > <= >= = <> ! =

重要

ANY演算子は、リレーショナル演算子に従う必要があります。 リレーショナルオペレーター: < > <= >= = <> ! =

サブクエリ

このパラメーターの値は、SQLサブクエリです。

戻り値のデータ型

ブール型。

インスタンスi-01に関連するリクエストにステータスコード200が応答しているかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    status:200
  • クエリ文

    * | SELECT 200 = ANY(SELECT status WHERE instance_id='i-01')
  • クエリと分析結果 any

演算子の間

BETWEEN演算子は、xyzの間にあるかどうかを決定します。 条件が満たされると、trueが返されます。 yzは閉じた区間を指定します。

構文

x BETWEEN y AND z

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

z

このパラメーターの値は、比較をサポートするデータ型です。

重要
  • xyzのデータ型は同じである必要があります。

  • xy、またはzの値にnullが含まれる場合、nullが返されます。

戻り値のデータ型

ブール型。

  • 例1: statusフィールドの値が [200,299] の範囲内にあるかどうかを判断します。

    • クエリ文

      * | SELECT status BETWEEN 200 AND 299

      の間のステータスを選択

    • クエリと分析結果 BETWEEN

  • 例2: statusフィールドの値が [200,299] の範囲内にないログの数を決定します。

    • クエリ文

      * | SELECT count(*) AS count FROM log WHERE status NOT BETWEEN 200 AND 299
    • クエリと分析結果 between

DISTINCT演算子

DISTINCT演算子は、xyに等しいかどうかを決定します。

構文

  • IS DISTINCT FROM: xyと等しくない場合、trueが返されます。

    x IS DISTINCT FROM y

    から離れています

  • IS NOT DISTINCT FROM: xyに等しい場合、trueが返されます。

    x IS NOT DISTINCT FROM y

    から離れていません

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

=および <> 演算子とは異なり、DISTINCT演算子を使用してnullで比較を実行できます。

x

y

x=y

x <> y

xから離れていますy

xから離れていないy

1

1

true

false

false

true

1

2

false

true

true

false

1

null

null

null

true

false

null

null

null

null

false

true

戻り値のデータ型

ブール型。

0をnullと比較します。

  • クエリ文

    * | select 0 IS DISTINCT FROM null
  • クエリと分析結果 distinct

オペレータのように

LIKE演算子は、文字列内の指定された文字パターンと一致します。 文字列は大文字と小文字を区別します。

構文

x LIKE pattern [escape 'escape_character']

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

パターン

このパラメーターの値は文字パターンで、文字列またはワイルドカード文字を含めることができます。 次のワイルドカード文字がサポートされています。

  • パーセント記号 (%): 任意の文字数を示します。

  • アンダースコア (_): 1文字を示します。

escape_character

このパラメーターの値は、文字パターン内のワイルドカード文字をエスケープするために使用される文字式です。

説明

LIKE演算子は、完全一致に基づいてログをクエリするために使用されます。 詳細については、「」をご参照ください。完全一致を使用してログをクエリするにはどうすればよいですか?

戻り値のデータ型

ブール型。

SQL

  • 例1: request_uriフィールドの値がfile-8またはfile-6で終わるログを照会します。

    • サンプルフィールド

      request_uri:/request/path-2/file-6
    • クエリ文

      *|SELECT * WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
    • クエリと分析結果 OR

  • 例2: request_uriフィールドの値がfile-6で終わるかどうかを確認します。

    • サンプルフィールド

      request_uri:/request/path-2/file-6
    • クエリ文

      * | SELECT request_uri LIKE '%file-6'
    • クエリと分析結果 like

SPL

  • 例1: request_uriフィールドの値がfile-8またはfile-6で終わるログを照会します。

    • サンプルフィールド

request_uri:/request/path-2/file-6
  • SPLステートメント

*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
  • SPLの結果

image.png

  • 例2: request_uriフィールドの値がfile-6で終わるかどうかを確認します。

    • サンプルフィールド

request_uri:/request/path-2/file-6
  • SPLステートメント

* | extend a = request_uri LIKE '%file-6'
  • SPLの結果

image.png

一部の演算子

SOME演算子は、xが条件の1つを満たすかどうかを判断します。 いずれかの条件が満たされると、trueが返されます。

構文

x relational operator SOME(subquery)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

リレーショナルオペレーター

このパラメーターの値は関係演算子です。 有効な値: < > <= >= = <> ! =

重要

SOME演算子は、リレーショナル演算子に従う必要があります。 リレーショナルオペレーター: < > <= >= = <> ! =

サブクエリ

このパラメーターの値は、SQLサブクエリです。

戻り値のデータ型

ブール型。

インスタンスi-01に関連するリクエストが20秒未満処理されているかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    request_time:16 
  • クエリ文

    * | SELECT 20 > SOME(SELECT request_time WHERE instance_id='i-01')
  • クエリと分析結果 any

GREATESTオペレーター

GREATEST演算子は、xyの大きな値を取得します。

説明

GREATEST演算子は水平比較に使用され、max関数は垂直比較に使用されます。

構文

GREATEST(x、y...)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値のデータ型

ダブルタイプ。

同じログのrequest_timeフィールドとstatusフィールドの値を比較して、より大きな値を取得します。

  • サンプルフィールド

    request_time:38
    status:200
  • クエリ文

    * |  SELECT GREATEST(request_time,status)
  • クエリと分析結果 greatest

LEASTオペレーター

LEAST演算子は、xyの小さい方の値を取得します。

説明

LEAST演算子は水平比較に使用され、min関数は垂直比較に使用されます。

構文

LEAST(x, y...)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値のデータ型

ダブルタイプ。

同じログのrequest_timeフィールドとstatusフィールドの値を比較して、小さい値を取得します。

  • サンプルフィールド

    request_time:77
    status:200 
  • クエリ文

    * | SELECT LEAST(request_time,status)
  • クエリと分析結果 least

NULL演算子

NULL演算子は、xがnullかどうかを決定します。

構文

  • IS NULL: xがnullの場合、trueが返されます。

    x IS NULL
  • IS NOT NULL: xがnullでない場合、trueが返されます。

    x IS NOT NULL

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

戻り値のデータ型

ブール型。

  • 例1: statusフィールドの値がnullかどうかを判断します。

    • クエリ文

      * | select status IS NULL
    • クエリと分析結果 is null

  • 例2: statusフィールドが空でないログの数を決定します。

    • クエリ文

      * | SELECT count(*) AS count FROM log WHERE status IS NOT NULL
    • クエリと分析結果 is not null