本文为您介绍高级搜索中可以使用的函数。
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:必选。 正则表达式。 - FROM pattern子句中使用的是POSIX正则表达式;- SIMILAR pattern子句中使用的是SQL正则表达式。
 
- 使用示例: - 示例场景 - 请求示例 - 返回示例 - 从字符串中找出指定的子字符串。 - SELECT SUBSTRING('Thomas' FROM 2 FOR 3);- substring - ------- - hom - 从字符串中找出与POSIX正则表达式匹配的子字符串。 - 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