Hologres兼容PostgreSQL,支持使用标准的PostgreSQL语法进行开发。本文为您介绍Hologres已支持的字符串转换函数和字符串截取函数列表及使用用例。
字符串转换函数
Hologres已支持的字符串转换函数列表如下。当前Hologres版本支持的函数是PostgreSQL的一个子集,函数的使用方法请参见类型转换函数。
函数名 | 返回类型 | 描述 | 用例 | 结果 |
---|---|---|---|---|
to_number(text, text) | NUMERIC | 转换字符串为数字。 |
| 12454.8 |
string_agg(expression,delimiter) | TEXT | 使用指定分隔符将指定表达式的非空值串联成字符串。可作为列转行使用。 |
|
|
string_agg (expression [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] | TEXT | 使用指定分隔符将指定表达式的非空值串联成字符串。可作为列转行使用,同时在表达式中支持filter过滤条件。 说明 Hologres V1.3及以上版本支持。 |
|
|
regexp_split_to_table(string text, pattern text) | TEXT | 字符串分割函数,将分割出的数据转换成行,可作为行转列使用。 |
|
|
regexp_split_to_array(string text, pattern text) | ARRAY | 字符串分割函数,将分割出的数据转换成数组,可作为行转数组使用。 |
|
|
replace(string text, old_text, new_text) | TEXT | 将字符串中原有的子字串替换成新的子字串。 |
|
|
regexp_replace(string, regex, replacement[, flags]) | TEXT | 通过POSIX 正则表达式将子字符串替换为新的子字符串。 |
|
|
regexp_match(string text, pattern text) | ARRAY | 对字符串按正则表达式进行匹配,如果存在则会在结果数组中表示出来。 |
|
|
row_to_json | JSON | 将一行数据转换为JSON格式。 说明 Hologres V1.3及以上版本支持。 |
|
|
row() | ARRAY/TEXT | 返回公式所在的行号。 说明 Hologres V1.3及以上版本支持。 |
|
|
字符串截取函数
Hologres已支持的字符串截取函数列表如下。当前Hologres版本支持的函数是PostgreSQL的一个子集,函数的使用方法请参见字符串截取函数。
函数名 | 返回类型 | 描述 | 用例 | 结果 |
---|---|---|---|---|
split_part(string text ,delimiter text,n int) | TEXT | 使用指定的分隔符拆分字符串,并返回第n个字串。 |
|
|
concat(str "any" [, str "any" [, ...] ]) | TEXT | 连接所有参数。忽略NULL参数。 |
|
|
concat_ws(sep text, str "any" [, str "any" [, ...] ]) | TEXT | 使用分隔符连接除第一个参数外的所有参数。 说明 第一个参数用作分隔符字符串。忽略NULL参数。 |
|
|
substring(string [from int] [for int]) | TEXT | 从字符串中找出指定的子字符串。 |
|
|
substring(string from pattern) | TEXT | 从字符串中找出与POSIX正则表达式匹配的子字符串。 |
|
|
substring(string from pattern for escape) | TEXT | 从字符串中找出与SQL正则表达式匹配的子字符串。 |
|
|
left(string text, n int) | TEXT | 返回字符串的前n个字符。n为负数时,返回除最后-n 个字符之外的所有字符。 |
|
|
right(string text, n int) | TEXT | 返回字符串的后n个字符。n为负数时,返回除前-n 个字符之外的所有字符。 |
|
|
string || string | TEXT | 连接两个字符串。 |
| HologreSQL |
bit_length(string) | TEXT | 获取字符串的位长度。 |
| 32 |
char_length(string) | TEXT | 获取字符串的字符长度。 |
| 4 |
length(string) | TEXT | 获取字符串的字节长度,使用utf8编码字符集时,一个汉字是3字节,一个数字或字母算一个字节。 说明 length函数的计算结果和char_length函数相同,因为英文字符的个数和所占字节相同,一个字符占一个字节。 |
| 4 |
lower(string) | TEXT | 转换字符串为小写格式。 |
| tom |
upper(string) | TEXT | 转换字符串为大写格式。 |
| TOM |
initcap(string) | TEXT | 将每个单词的第一个字母转换为大写,其余字母转换为小写。 说明 单词是由一系列字母和数字组成的字符,使用非字母或数字分隔。 |
| Hi Thomas |
octet_length(string) | TEXT | 返回字符串的字节数。 |
| 4 |
position(substring in string) | TEXT | 查找子字符串在字符串中的位置。 |
| 3 |
strpos(string, substring) | TEXT | 查找子字符串在目标字符串中的位置。 |
| 2 |
trim([leading | trailing | both] [characters] from string) | TEXT | 从字符串String的开始、结尾或两端删除仅包含Characters中字符的最长字符串。 说明
|
| Tom |
btrim(string text [, characters text]) | TEXT | 从字符串String的开始和结尾删除仅包含Characters中字符的最长字符串。 说明 默认仅包含Characters中字符的最长字符串为空格。 |
| trim |
ltrim(string text [, characters text]) | TEXT | 从字符串String的开始删除只包含Characters 中字符的最长的字符串。 说明 如果没有指定Characters的值,则Characters默认是空格。 |
| test |
rtrim(string text [, characters text]) | TEXT | 从字符串String的末尾删除只包含Characters中字符的最长的字符串。 说明 如果没有指定Characters的值,则Characters默认是空格。 |
| test |
lpad(string text, length int [, fill text]) | TEXT | 用Fill填充在String头部,将String填充为长度是Length的字符串。 说明
|
| xyxhi |
rpad(string text, length int [, fill text]) | TEXT | 对字符串的右边进行填充,填充内容为指定长度的字符串。 |
| hixyx |
md5(string) | TEXT | 计算String的MD5哈希值。结果表示为十六进制的形式。 |
| 900150983cd24fb0d6963f7d28e17f72 |
parse_ident(quali_iden text [,...] ) | TEXT | 解析字符串。 |
| {SomeSchema,sometable} |
quote_ident(string text) | TEXT | 使用String作为合法的SQL标识符。 说明 当字符串包含非标识符字符或者字符串会转换大小写时,需要添加引号。 |
| "Foo bar" |
quote_literal(string text) | TEXT | 将String转换为合法的SQL语句字符串的常量形式。 |
| 'O''Reilly' |
ascii(string) | TEXT | 返回参数第一个字符的ASCII码。 |
| 120 |
chr(int) | TEXT | 返回指定编码值对应的字符。 说明 参数必须是合法的ASCII或UTF8编码值,并且参数值不能为0。 |
| A |
repeat(string text, number int) | TEXT | 将String重复指定Nnumber次。 |
| PgPgPgPg |
starts_with(string, prefix) | BOOLEAN | 如果字符串以前缀开头,则返回true;否则返回false。 |
| t |
to_hex(number int or bigint) | TEXT | 将数字转换为十六进制的表示形式。 |
| 7fffffff |
translate(string text, from text, to text) | TEXT | 使用字符串To中的字符替换From中的字符。 |
| a2x5 |