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

Simple Log Service:文字列関数

最終更新日:Nov 19, 2024

このトピックでは、文字列関数の構文について説明します。 このトピックでは、関数の使用方法の例も示します。

次の表に、Simple Log Serviceでサポートされている文字列関数を示します。

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

関数

構文

説明

SQLでサポート

SPLでサポート

chr関数

chr( x)

ASCIIコードを文字に変換します。

コードポイント関数

コードポイント (x)

文字をASCIIコードに変換します。

concat関数

concat( xy ...)

複数の文字列を1つの文字列に連結します。

from_utf8関数

from_utf8( x)

バイナリ文字列をUTF-8-encoded文字列にデコードします。 無効なUTF-8シーケンスは、デフォルトの置換文字U + FFFDで置換される。

from_utf8( x, replace_string)

バイナリ文字列をUTF-8エンコード文字列にデコードします。 無効なUTF-8シーケンスはカスタム文字列に置き換えられます。

長さ関数

長さ (x)

文字列の長さを返します。

levenshtein_distance関数

levenshtein_distance( x, y)

xyの間の最小編集距離を返します。

×

下部関数

下 (x)

文字列の文字を小文字に変換します。

lpad機能

lpad( xlengthlpad_string)

Leftは、指定した文字を使用して文字列を指定した長さにパディングし、結果の文字列を返します。

ltrim関数

ltrim( x)

文字列の先頭からスペースを削除します。

正規化関数

normalize( x)

NFC正規化フォームを使用して文字列を変換します。

×

位置関数

位置 (xsub_string)

文字列内の指定された部分文字列の位置を返します。

×

replace関数

replace( x, sub_string)

文字列から一致した文字を削除します。

replace( x, sub_string, replace_string)

文字列内の一致した文字を指定した文字に置き換えます。

逆関数

リバース (x)

逆の順序で文字列を返します。

rpad関数

rpad( xlengthrpad_string)

右は、指定した文字を使用して文字列を指定した長さにパディングし、結果の文字列を返します。

rtrim関数

rtrim( x)

文字列の末尾からスペースを削除します。

スプリット関数

スプリット (x, delimeter)

指定された区切り文字を使用して文字列を分割し、部分文字列のセットを返します。

×

スプリット (xdelimeterlimit)

指定された区切り文字を使用して文字列を分割し、部分文字列のセットを返します。 生成できる部分文字列の数をlimitで指定します。

×

split_part関数

split_part( x, delimeter, part)

指定された区切り文字を使用して文字列を分割し、指定された位置の部分文字列を返します。

split_to_map関数

split_to_map( x, delimiter01, delimiter02)

最初に指定した区切り文字を使用して文字列を分割し、次に2番目に指定した区切り文字を使用して文字列を分割します。

×

strpos関数

strpos( x, sub_string)

文字列内の指定された部分文字列の位置を返します。 この関数は、position (xsub_string) 関数に相当します。

substr関数

substr( x, start)

文字列内の指定された位置の部分文字列を返します。

substr( xstartlength)

文字列内の指定された位置の部分文字列を返します。 部分文字列の長さが指定されます。

to_utf8関数

to_utf8( x)

文字列をUTF-8表現に変換します。

トリム関数

トリム (x)

文字列の先頭と末尾からスペースを削除します。

上位関数

アッパー (x)

文字列の文字を大文字に変換します。

chr関数

chr関数はASCIIコードを文字に変換します。

構文

chr(x)

パラメーター

パラメーター

説明

x

このパラメータの値はASCIIコードです。

戻り値のデータ型

varcharタイプ。

regionフィールドの値の最初の文字がcで始まるかどうかを確認します。 次のクエリステートメントでは、値99はASCIIコードで、小文字のcを表します。

  • サンプルフィールド

    region:cn-shanghai
  • クエリ文 (デバッグ)

    * | SELECT
      substr(region, 1, 1) = chr(99)
  • クエリと分析結果 chr

codepoint関数

コードポイント関数は、文字をASCIIコードに変換します。

構文

codepoint(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

整数型。

regionフィールドの値の最初の文字がcで始まるかどうかを確認します。 次のクエリステートメントでは、値99はASCIIコードで、小文字のcを表します。

  • サンプルフィールド

    upstream_status:200
  • クエリ文 (デバッグ)

    * | SELECT
      codepoint(cast (substr(region, 1, 1) AS char(1))) = 99
  • クエリと分析結果 codepoint

concat関数

concat関数は、複数の文字列を1つの文字列に連結します。

構文

concat(x, y...)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

y

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

regionフィールドとrequest_methodフィールドの値を1つの文字列に連結します。

  • サンプルフィールド

    region:cn-shanghai
    time:14/Jul/2021:02:19:40
  • クエリ文 (デバッグ)

    * | SELECT
      concat(region, '-', time)
  • クエリと分析結果 concat函数

from_utf8関数

from_utf8関数は、バイナリ文字列をUTF-8エンコード文字列にデコードします。

構文

  • 次の構文を使用すると、無効なUTF-8シーケンスがデフォルトの置換文字U + FFFDに置き換えられます。

    from_utf8(x)
  • 次の構文を使用すると、無効なUTF-8シーケンスがカスタム文字列に置き換えられます。

    from_utf8(x,replace_string)

パラメーター

パラメーター

説明

x

このパラメーターの値はバイナリ型です。

replace_string

このパラメーターの値は、使用するカスタム文字列です。 1文字またはスペースを指定できます。

戻り値のデータ型

varcharタイプ。

  • バイナリ文字列0x80をUTF-8のエンコード文字列にデコードし、結果の無効なUTF-8シーケンスをデフォルトの置換文字U + FFFDに置き換えます。 U + FFFDは、� として表示される。

    • クエリ文 (デバッグ)

      * | SELECT
        from_utf8(from_base64('0x80'))
    • クエリと分析結果 from_utf8

  • バイナリ文字列0x80をUTF-8エンコードされた文字列にデコードし、結果の無効なUTF-8シーケンスを0に置き換えます。

    • クエリ文 (デバッグ)

      * | SELECT
        from_utf8(from_base64('0x80'), '0')
    • クエリと分析結果 from_utf8

長さ関数

length関数は、文字列の長さを返します。

構文

length(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

bigint型。

http_user_agentフィールドの値の長さを計算します。

  • サンプルフィールド

    http_user_agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2
  • クエリ文 (デバッグ)

    * | SELECT
      length(http_user_agent)
  • クエリと分析結果 length函数

levenshtein_distance関数

levenshtein_distance関数は、2つの文字列間の最小編集距離を返します。

構文

levenshtein_distance(x, y)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

y

このパラメーターの値はvarchar型です。

戻り値のデータ型

bigint型。

instance_idフィールドの値とowner_idフィールドの値の間の最小編集距離を照会します。

  • サンプルフィールド

    instance_id:i-01
    owner_id:owner-01
  • クエリ文 (デバッグ)

    * | SELECT
      levenshtein_distance(owner_id, instance_id)
  • クエリと分析結果 levenshtein_distance

低い関数

lower関数は、文字列の文字を小文字に変換します。

構文

lower(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

request_methodフィールドの値の文字を小文字に変換します。

  • サンプルフィールド

    request_method:GET
  • クエリ文 (デバッグ)

    * | SELECT
      lower(request_method)
  • クエリと分析結果 lower函数

lpad関数

lpad関数leftは、指定された文字を使用して文字列を指定された長さにパディングし、結果の文字列を返します。

構文

lpad(x, length, lpad_string)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

長さ

このパラメーターの値は、結果文字列の長さを指定する整数です。

  • 文字列の長さがlengthパラメーターの値より小さい場合、文字列の先頭から指定された文字を使用して文字列がパディングされます。

  • 文字列の長さがlengthパラメーターの値より大きい場合、文字列のn文字のみが返されます。 nはlengthによって指定されます。

lpad_string

このパラメーターの値は、文字列のパディングに使用する文字です。

戻り値のデータ型

varcharタイプ。

instance_idフィールドの値を10文字にパディングします。 値の長さが10文字未満の場合は、0を使用して値の先頭から値を埋めます。

  • サンプルフィールド

    instance_id:i-01
  • クエリ文 (デバッグ)

    * | SELECT
      lpad(instance_id, 10, '0')
  • クエリと分析結果 lpad

ltrim関数

ltrim関数は、文字列の先頭からスペースを削除します。

構文

ltrim(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

regionフィールドの値の先頭からスペースを削除します。

  • サンプルフィールド

    region: cn-shanghai
  • クエリ文 (デバッグ)

    * | SELECT
      ltrim(region)
  • クエリと分析結果 ltrim

normalize関数

normalize関数は、NFC正規化フォームを使用して文字列を変換します。

構文

normalize(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

NFC正規化フォームを使用してsch ö n文字列を変換します。

  • クエリ文 (デバッグ)

    * | SELECT
      normalize('schön')
  • クエリと分析結果 normalize

位置関数

position関数は、文字列内の指定された部分文字列の位置を返します。

構文

position(sub_string in x)

パラメーター

パラメーター

説明

sub_string

このパラメーターの値は、クエリする位置の部分文字列です。

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

整数型。 有効な値は1から始まります。 文字列に指定された部分文字列が含まれていない場合は、0が返されます。

regionフィールドの値のcn部分文字列の位置を照会します。

  • サンプルフィールド

    region:cn-shanghai
  • クエリ文 (デバッグ)

    * | SELECT
      position('cn' in region)
  • クエリと分析結果 position函数

replace関数

replace関数は、文字列から一致した文字を削除するか、文字列内の一致した文字を指定された文字に置き換えます。

構文

  • 次の構文を使用すると、文字列から一致した文字が削除されます。

    replace(x, sub_string)
  • 次の構文を使用すると、文字列内の一致した文字が指定された文字に置き換えられます。

    replace(x, sub_string, replace_string)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

sub_string

このパラメーターの値は、一致させる部分文字列です。

replace_string

このパラメーターの値は、一致した部分文字列を置き換えるために使用する部分文字列です。

戻り値のデータ型

varcharタイプ。

  • 例1: regionフィールドの値のcnChinaに置き換えます。

    • サンプルフィールド

      region:cn-shanghai
    • クエリ文 (デバッグ)

      * | select
        replace(region, 'cn', 'China')
    • クエリと分析結果 replace

  • 例2: regionフィールドの値からcn- を削除します。

    • サンプルフィールド

      region:cn-shanghai
    • クエリ文 (デバッグ)

      * | select
        replace(region, 'cn-')
    • クエリと分析結果 replace

逆関数

reverse関数は文字列を逆の順序で返します。

構文

reverse(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

request_methodフィールドの値の文字を反転します。

  • サンプルフィールド

    request_method:GET
  • クエリ文 (デバッグ)

    * | SELECT
      reverse(request_method)
  • クエリと分析結果 reverse

rpad関数

rpad関数は、指定された文字を使用して文字列を指定された長さに右パディングし、結果の文字列を返します。

構文

rpad(x, length, rpad_string)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

長さ

このパラメーターの値は、結果文字列の長さを指定する整数です。

  • 文字列の長さがlengthパラメーターの値より小さい場合、文字列の末尾から指定された文字を使用して文字列がパディングされます。

  • 文字列の長さがlengthパラメーターの値より大きい場合、文字列のn文字のみが返されます。 nはlengthによって指定されます。

rpad_string

このパラメーターの値は、文字列のパディングに使用する文字です。

戻り値のデータ型

varcharタイプ。

instance_idフィールドの値を10文字にパディングします。 値の長さが10文字未満の場合は、0を使用して値の末尾から値を埋めます。

  • サンプルフィールド

    instance_id:i-01
  • クエリ文 (デバッグ)

    * | SELECT
      rpad(instance_id, 10, '0')
  • クエリと分析結果 rpad

rtrim関数

rtrim関数は、文字列の末尾からスペースを削除します。

構文

rtrim(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

instance_idフィールドの値の末尾からスペースを削除します。

  • サンプルフィールド

    instance_id:i-01 
  • クエリ文 (デバッグ)

    * | SELECT
      rtrim(instance_id)
  • クエリと分析結果 rtrim

スプリット関数

split関数は、指定された区切り文字を使用して文字列を分割し、部分文字列のセットを返します。

構文

  • 次の構文を使用する場合、関数は指定された区切り文字を使用して文字列を分割し、部分文字列のセットを返します。

    split(x, delimeter)
  • 次の構文を使用する場合、関数は指定された区切り文字を使用して文字列を分割し、部分文字列のセットを返します。 生成できる部分文字列の数をlimitで指定します。

    split(x,delimeter,limit)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

delimeter

このパラメーターの値は、使用する区切り文字です。

制限

このパラメーターの値は0より大きい整数です。 値は、生成できる部分文字列の数を指定します。

戻り値のデータ型

配列型。

  • 例1: スラッシュ (/) を使用して、request_uriフィールドの値を4つの部分文字列に分割し、部分文字列のセットを取得します。

    • サンプルフィールド

      request_uri:/request/path-1/file-9
    • クエリ文 (デバッグ)

      * | SELECT
        split(request_uri, '/')
    • クエリと分析結果 split

  • 例2: スラッシュ (/) を使用して、request_uriフィールドの値を3つの部分文字列に分割し、部分文字列のセットを取得します。

    • サンプルフィールド

      request_uri:/request/path-1/file-9
    • クエリ文 (デバッグ)

      * | SELECT
        split(request_uri, '/', 3)
    • クエリと分析結果 split

split_part関数

split_part関数は、指定された区切り文字を使用して文字列を分割し、指定された位置の部分文字列を返します。

構文

split_part(x, delimeter, part)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

delimeter

このパラメーターの値は、使用する区切り文字です。

部分

このパラメーターの値は0より大きい整数です。

戻り値のデータ型

varcharタイプ。

疑問符 (?) を使用して、request_uriフィールドの値を分割し、ファイルパスである最初の部分文字列を取得します。 次に、各パスに対応するリクエストの数を測定します。

  • サンプルフィールド

    request_uri: /request/path-2/file-6?name=value&age=18
    request_uri: /request/path-2/file-0?name=value&age=18
    request_uri: /request/path-3/file-2?name=value&age=18
  • クエリ文 (デバッグ)

    * | SELECT
      count(*) AS PV,
      split_part(request_uri, '?', 1) AS Path
    GROUP BY
      Path
    ORDER BY
      pv DESC
  • クエリと分析結果 TOP3访问地址

split_to_map関数

split_to_map関数は、最初に指定された区切り文字を使用して文字列を分割し、次に2番目に指定された区切り文字を使用して文字列を分割します。

構文

split_to_map(x, delimiter01, delimiter02)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

delimeter01

このパラメーターの値は、使用する区切り文字です。

delimeter02

このパラメーターの値は、使用する区切り文字です。

戻り値のデータ型

マップタイプ。

コンマ (,) とコロン (:) を使用してtimeフィールドの値を分割し、map型の値を取得します。

  • サンプルフィールド

    time:upstream_response_time:"80", request_time:"40"
  • クエリ文

    * | SELECT
      split_to_map(time, ',', ':')
  • クエリと分析結果 split_to_map

strpos関数

strpos関数は、文字列内の指定された部分文字列の位置を返します。 この関数は位置関数に相当します。

構文

strpos(x, sub_string)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

sub_string

このパラメーターの値は、クエリする位置の部分文字列です。

戻り値のデータ型

整数型。 有効な値は1から始まります。 文字列に指定された部分文字列が含まれていない場合は、0が返されます。

server_protocolフィールドの値の文字Hの位置を照会します。

  • クエリ文 (デバッグ)

    * | SELECT
      strpos(server_protocol, 'H')
  • クエリと分析結果 strpos

subst関数

substrum関数は、文字列内の指定された位置にある部分文字列を返します。

構文

  • 次の構文を使用すると、関数は文字列の指定された位置にある部分文字列を返します。

    substr(x, start)
  • 次の構文を使用すると、関数は文字列の指定された位置にある部分文字列を返します。 部分文字列の長さが指定されます。

    substr(x,start,length)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

start

このパラメーターの値は、部分文字列を抽出する開始位置です。 有効な値は1から始まります。

長さ

このパラメーターの値は、部分文字列の長さです。

戻り値のデータ型

varcharタイプ。

server_protocolフィールドの値から最初の4文字 (HTTP) を抽出します。 次に、HTTPプロトコルを使用するリクエストの数を測定します。

  • サンプルフィールド

    server_protocol:HTTP/2.0
  • クエリ文 (デバッグ)

    * | SELECT
      substr(server_protocol, 1, 4) AS protocol,
      count(*) AS count
    GROUP BY
      server_protocol
  • クエリと分析結果 substr

to_utf8関数

to_utf8関数は、文字列をUTF-8表現に変換します。

構文

to_utf8(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varbinary型。

ログ文字列をUTF-8表現に変換します。

  • クエリ文 (デバッグ)

    * | SELECT
      to_utf8('log')
  • クエリと分析結果 to_utf8

トリム関数

トリム関数は、文字列の先頭と末尾からスペースを削除します。

構文

trim(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

instance_idフィールドの値の先頭と末尾からスペースを削除します。

  • サンプルフィールド

    instance_id: i-01 
  • クエリ文 (デバッグ)

    * | SELECT
      trim(instance_id)
  • クエリと分析結果 rtrim

上位関数

upper関数は、文字列の文字を大文字に変換します。

構文

upper(x)

パラメーター

パラメーター

説明

x

このパラメーターの値はvarchar型です。

戻り値のデータ型

varcharタイプ。

regionフィールドの値の文字を大文字に変換します。

  • サンプルフィールド

    region:cn-shanghai
  • クエリ文 (デバッグ)

    * | SELECT
      upper(region)
  • クエリと分析結果 upper函数