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

Resource Management:サポートされている関数

最終更新日:Nov 01, 2024

このトピックでは、高度な検索で使用できる関数について説明します。

to_char(timestamp/timestamptz, text)

  • 戻り値タイプ: TEXT。

  • 説明: タイムスタンプを文字列に変換します。 デフォルトでは、時間範囲は1925から2282です。

  • Format

    • 第1のパラメータは、変換されるべきタイムスタンプを指定し、第2のパラメータは、変換フォーマットを指定します。

    • YYYYは年を示し、MMは月を示し、DDは日を示し、HHは時間を示し、MIは分を示し、SSは秒を示します。

    • to_char関数を使用して、タイムスタンプを24時間クロックまたは12時間クロックの文字列に変換できます。 HH24は24時間クロックを示し、HH12は12時間クロックを示します。 デフォルトでは12時間の時計が使用されます。

  • シナリオ

    Request

    レスポンス

    現在のタイムスタンプを24時間クロックの文字列に変換します。

    SELECT TO_CHAR(NOW(), 'YYYY-MM-DD');

    20221208

to_timestamp (テキスト、テキスト)

  • 戻り値タイプ: TIMESTAMPTZ。

  • 説明: 文字列をタイムスタンプに変換します。 デフォルトでは、時間範囲は1925から2282です。

  • Format: 最初のパラメーターは変換する文字列を指定し、2番目のパラメーターは変換形式を指定します。

  • シナリオ

    Request

    レスポンス

    TEXT型のフィールド値を日付に変換します。

    SELECT TO_TIMESTAMP(properties ->> 'ExpireTime', 'YYYY-MM-DD') FROM resources WHERE resource_type = 'ACS::RDS::DBInstance';

    2001-09-28

clock_timestamp()

  • 戻り値タイプ: TIMESTAMPTZ。

  • 説明: 現在の時刻を返します。

  • シナリオ

    Request

    レスポンス

    現在の時刻を照会します。

    SELECT CLOCK_TIMESTAMP();

    2023-09-02T11:47:19Z

concat(param1 [,param2]...)

  • 戻り値タイプ: TEXT。

  • 説明: NULLを除くすべての値を連結します。

  • Format: パラメータは、連結する値を指定します。 値は任意のデータ型にすることができます。 最初のパラメータは必須で、他のパラメータはオプションです。

  • シナリオ

    Request

    レスポンス

    NULLを除くすべての値を連結します。

    SELECT CONCAT('abcde', 2, NULL, 22);

    concat

    --------

    abcde222

concat_ws(separator, param1 [,param2]...)

  • 戻り値タイプ: TEXT。

  • 説明: 区切り文字を使用して、最初のパラメーターで指定された値とNULLを除くすべての値を連結します。

  • Format: 最初のパラメータは区切り文字を指定します。 他のパラメーターは、連結する値を指定します。 値は任意のデータ型にすることができます。 第1および第2のパラメータは必須であり、他のパラメータはオプションです。

  • シナリオ

    Request

    レスポンス

    区切り文字を使用して、最初のパラメーターで指定された値とNULLを除くすべての値を連結します。

    SELECT concat_ws(',', 'abcde', 2, NULL, 22);

    concat_ws

    --------

    abcde,2,22

部分文字列 ()

  • 戻り値タイプ: TEXT。

  • 説明: 文字列から部分文字列を抽出します。

  • 形式: 部分文字列 (string[FROM start][FOR length]) または部分文字列 (string FROM pattern)

    • string: 必須です。 文字列

    • start: オプション。 部分文字列の開始位置。 デフォルト値は1で、文字列の先頭を示します。

    • length: オプション。 部分文字列の長さ。 このパラメーターを指定しない場合、文字列の開始位置から終了までの部分文字列が抽出されます。

    • パターン: 必須。 正規表現。 POSIX (Portable Operating System Interface) 正規表現はFROM pattern句で使用され、SQL正規表現はSIMILAR pattern句で使用されます。

  • シナリオ

    Request

    レスポンス

    文字列から指定した部分文字列を抽出します。

    SELECT SUBSTRING('Thomas' FROM 2 FOR 3);

    部分文字列

    -------

    ホム

    POSIX正規表現に一致する部分文字列を文字列から抽出します。

    SELECT SUBSTRING('Thomas' FROM '...$');

    部分文字列

    --------

    mas

char_length(string)

  • 戻り値タイプ: INT。

  • 説明: 文字列の長さを返します。 長さは文字数に基づいて計算されます。

  • シナリオ

    Request

    レスポンス

    文字列の長さを照会します。

    SELECT CHAR_LENGTH('jose');

    4

長さ (文字列)

  • 戻り値タイプ: INT。

  • 説明: 文字列の長さを返します。 長さはバイト数に基づいて計算されます。 UTF-8文字セットを使用して文字列をエンコードする場合、漢字は3バイトを占め、数字または文字は1バイトを占めます。

  • シナリオ

    Request

    レスポンス

    文字列の長さを照会します。

    SELECT LENGTH('jose');

    4

lower(string)

  • 戻り値タイプ: TEXT。

  • 説明: 文字列を小文字に変換します。

  • シナリオ

    Request

    レスポンス

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

    SELECT LOWER('TOM');

    トム

upper (文字列)

  • 戻り値タイプ: TEXT。

  • 説明: 文字列を大文字に変換します。

  • シナリオ

    Request

    レスポンス

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

    SELECT UPPER('tom');

    トム

starts_with(string, string)

  • 戻り値タイプ: TEXT。

  • 説明: 文字列が特定のプレフィックスで始まるかどうかをチェックします。 最初のパラメーターはチェックする文字列を指定し、2番目のパラメーターはプレフィックスを指定します。 文字列がプレフィックスで始まる場合、starts_with() 関数はtrueを返します。 それ以外の場合、関数はfalseを返します。

  • シナリオ

    Request

    レスポンス

    文字列アルファベットがalphで始まるかどうかを確認します。

    SELECT starts_with('alphabet', 'alph');

    true

ケース

  • 説明: 条件がtrueと判断されるまで条件を通過し、値を返します。

  • シナリオ

    Request

    レスポンス

    Elastic Compute Service (ECS) インスタンスのステータスを変換します。

    SELECT
     resource_id,
     CASE
     properties ->> 'Status'
     WHEN 'ECS Pending' THEN 'Creating'
     WHEN 'ECS Running' THEN 'Running'
     WHEN 'ECS Starting' THEN 'Starting'
     WHEN 'ECS Stopping' THEN 'Stopping'
     WHEN 'ECS Stopped' THEN 'Stopped'
     END AS "Status",
    FROM
     resources
    WHERE
     resource_type = 'ACS::ECS::Instance'
    ORDER BY
     resource_id;
    resource_id Status
    ------------+-----------
    1 i-xxx				Running

カウント

  • 戻り値タイプ: INT。

  • 説明: 指定された条件を満たすテーブルの行数を計算します。

  • シナリオ

    Request

    レスポンス

    Alibaba Cloudリソースの数を計算します。

    SELECT count(*) FROM resources;
    1123

max

  • 説明: 数値式の最大値を計算します。

  • シナリオ

    Request

    レスポンス

    リソースの最新の作成時刻を照会します。

    SELECT MAX(create_time) FROM resources;

    2023-09-13T07:32:37Z

min

  • 説明: 数値式の最小値を計算します。

  • シナリオ

    Request

    レスポンス

    リソースの最も早い作成時刻を照会します。

    SELECT MIN(create_time) FROM resources;

    2021-08-20T02:20:37Z

jsonb_array_elements(jsonb)

  • 説明: JSONB配列をJSONB値のセットに展開します。

  • シナリオ

    Request

    レスポンス

    すべてのIPアドレスを照会します。

    SELECT
     DISTINCT JSONB_ARRAY_ELEMENTS(ip_addresses) AS ip_address
    FROM
     resources
    ip_address
    -----------
     "172.X.X.1"
     "172.X.X.2"
     "172.X.X.3"

jsonb_array_elements_text(jsonb)

  • 説明: JSONB配列をTEXT値のセットに展開します。

  • シナリオ

    Request

    レスポンス

    すべてのIPアドレスを照会します。

    SELECT
     DISTINCT JSONB_ARRAY_ELEMENTS_TEXT(ip_addresses) AS ip_address
    FROM
     resources
    ip_address
    -----------
     172.X.X.1
     172.X.X.2
     172.X.X.3

jsonb_object_keys(jsonb)

  • 説明: 最も外側のJSONBオブジェクトのキーのセットを返します。

  • シナリオ

    Request

    レスポンス

    すべてのタグキーを照会します。

    SELECT
     DISTINCT JSONB_OBJECT_KEYS(tags) AS tag_key
    FROM
     resources
    tag_key
    ------------------
     key_1
     key_2