このトピックでは、高度な検索で使用できる関数について説明します。
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 resourcesip_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 resourcesip_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 resourcestag_key ------------------ key_1 key_2