全部產品
Search
文件中心

Resource Management:支援的函數

更新時間:Jun 30, 2024

本文為您介紹進階搜尋中可以使用的函數。

to_char(timestamp/timestamptz, text)

  • 傳回型別:TEXT。

  • 描述:將時間戳記轉換為字串,預設支援時間範圍為1925年~2282年。

  • 格式:

    • 第一個參數表示待轉換時間,第二個參數表示轉換格式。

    • YYYY對應年,MM對應月,DD對應日,HH對應時,MI對應分,SS對應秒。

    • 可以使用to_char函數進行24小時制和12小時制的轉換,HH24對應24小時制,HH12對應12小時制,預設為12小時制。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    將建立時間轉換為24小時制。

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

    20221208

to_timestamp(text, text)

  • 傳回型別:TIMESTAMPTZ。

  • 描述:將字串轉換為時間戳記,預設支援時間範圍為1925年~2282年。

  • 格式:第一個參數表示待轉換時間,第二個參數表示轉換格式。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    TEXT類型的表欄位轉換為日期。

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

    2001-09-28

clock_timestamp()

  • 傳回型別:TIMESTAMPTZ。

  • 描述:擷取目前時間。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    擷取目前時間。

    SELECT CLOCK_TIMESTAMP();

    2023-09-02T11:47:19Z

concat(param1 [,param2]...)

  • 傳回型別:TEXT。

  • 描述:串連所有參數。忽略NULL參數。

  • 格式:第一個參數表示任何資料類型的值(必選),第二個參數表示需要串連的任何資料類型的值(可選)。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    串連所有參數。忽略NULL參數。

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

    concat

    --------

    abcde222

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

  • 傳回型別:TEXT。

  • 描述:使用分隔字元串連除第一個參數外的所有參數。忽略NULL參數。

  • 格式:第一個參數表示分隔字元,第二個參數表示需要串連的任何資料類型的值(必選),第三個參數表示需要串連的任何資料類型的值(可選)。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    使用分隔字元串連除第一個參數外的所有參數。忽略NULL參數。

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

    concat_ws

    --------

    abcde,2,22

substring()

  • 傳回型別:TEXT。

  • 描述:從字串中找到子字串。

  • 格式:substring(string[FROM start][FOR length])substring(string FROM pattern)。具體如下:

    • string:必選。 一個字串。

    • start:可選。 子字串的起始位置。預設是 1,也就是字串的開頭。

    • length:可選。 子字串的長度。預設是提取到字串的結尾。

    • pattern:必選。 Regex。 FROM pattern子句中使用的是POSIXRegex;SIMILAR pattern子句中使用的是SQLRegex。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    從字串中找出指定的子字串。

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

    substring

    -------

    hom

    從字串中找出與POSIXRegex匹配的子字串。

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

    substring

    --------

    mas

char_length(string)

  • 傳回型別:INT。

  • 描述:擷取字串的字元長度。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    擷取字串的字元長度。

    SELECT CHAR_LENGTH('jose');

    4

length(string)

  • 傳回型別:INT。

  • 描述:擷取字串的位元組長度,使用UTF-8編碼字元集時,一個漢字是3位元組,一個數字或字母是一個位元組。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    擷取字串的長度。

    SELECT LENGTH('jose');

    4

lower(string)

  • 傳回型別:TEXT。

  • 描述:轉換字串為小寫格式。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    轉換字串為小寫格式。

    SELECT LOWER('TOM');

    tom

upper(string)

  • 傳回型別:TEXT。

  • 描述:轉換字串為大寫格式。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    轉換字串為大寫格式。

    SELECT UPPER('tom');

    TOM

starts_with(string, string)

  • 傳回型別:TEXT。

  • 描述:第一個參數表示需要處理的字串,第二個參數表示字串首碼,如果字串string以指定的首碼開頭,那麼starts_with()函數返回true,否則返回false

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    判斷alphabet是否以alph開頭。

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

    true

case

  • 描述:在指定的條件運算式為TRUE時執行一組單個或多個語句。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    通過CASE轉換ECS執行個體的狀態。

    SELECT
     resource_id,
     CASE
     properties ->> 'Status'
     WHEN 'Pending' THEN '建立中'
     WHEN 'Running' THEN '運行中'
     WHEN 'Starting' THEN '啟動中'
     WHEN 'Stopping' THEN '停止中'
     WHEN 'Stopped' THEN '已停止'
     END AS "狀態"
    FROM
     resources
    WHERE
     resource_type = 'ACS::ECS::Instance'
    ORDER BY
     resource_id;
    resource_id 狀態
    ------------+-----------
    1 i-xxx				運行中

count

  • 傳回型別:INT。

  • 描述:返回指定表滿足查詢條件的結果行數。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    計算阿里雲資源數量。

    SELECT count(*) FROM resources;
    1123

max

  • 描述:求數實值型別運算式的最大值。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    查詢建立時間最大的資源。

    SELECT MAX(create_time) FROM resources;

    2023-09-13T07:32:37Z

min

  • 描述:求數實值型別運算式的最小值。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    查詢建立時間最小的資源。

    SELECT MIN(create_time) FROM resources;

    2021-08-20T02:20:37Z

jsonb_array_elements(jsonb)

  • 描述:把一個JSONB數組擴充成一個JSONB值的集合。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    列出所有的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值集合。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    列出所有的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對象中的鍵集合。

  • 使用樣本:

    樣本情境

    請求樣本

    返回樣本

    列出所有的標籤鍵。

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