字符串函数

HGDB 提供以下常见字符串函数

函数 返回类型 描述 例子 结果
bit_length(string) int 串中的位数 bit_length( ‘jose’) 32
bit_length(string) int 串中的位数 bit_length( ‘jose’) 32
char_length(string )orcharacter_length( string) int 串中的位数 char_lengt h(‘jose’) 4
lower(string) text 将字符串转换为 小写形式 lower(‘TO M’) tom
octet_length(strin g) int 串中的字节数 octet_length(‘jose’) 4
overlay(stringplacing stringfrom int [for int]) text 替换子串 overlay(‘T ‘xxxxasplacing’hom’from 2 for4) Thomas
position(substring in string) int 定位指定子串 position(‘o ‘min’Thomas’) 3
substring(string [from int] [for int]) text 提取子串 substring(‘ Thomas’from 2 for 3)
substring(string from pattern) text 提取匹配 POSIX 正则表达式的子串。模式匹配详 情见第 8.7 节 substring(‘ Thomas’from ‘…$’)
substring(string frompattern for escape) text 提取匹配 SQL正 则表达式的子串。 模式匹配详情 见第 8.7 节 substring(‘Thomas’from’%#”o_a#”_’ for’#’)
trim( [ leading|trailing|both ] [ characters ] from string) text 从 string 的开头、结尾或者两端(both是默认值)移除只包含 characters(默认是一个空格)中字符的最长字符串 trim(both ‘xyz’ from ‘yxTomxx’) Tom
trim( [ leading | trailing | both ] [ from ] string [ , characters ] ) text trim() 的非标准版本 trim(both from ‘xTomxx’,’x’) Tom
upper(string) text 将字符串转换成 大写形式 upper(‘tom ‘) TOM
ascii(string) int 参数第一个字符的ASCII 代码。对于 UTF8 返回该字符的 Unicode 代码点。对于其他多字 节编码,该参数必须是一个 ASCII 字 符。 ascii(‘x’) 120
btrim(string text [,characters text]) text 从 string 的开头或结尾 删除最长的只包含 characters(默 认是一个空格)的串 btrim(‘xyxtrimyyx’, ‘xyz’) trim
concat(str “any” [, str”any” [, …] ]) text 串接所有参数的文本表 示。NULL参数被忽略。 imgconcat(‘ab cde’2, NULL, 22) abcde222
convert_from(st ring bytea,src_encoding name) text 将字符串转换为数据库编码。原始编码由 src_encoding指定。string 在这个编码中必须可用。 convert_from(‘text_i n_utf8’,’UTF8’) 用当前数 据库编码表示 的 text
format(formatstr text [,formatarg “any” [, …] ]) text 根据一个格式字符串格 式化参数。该函数和 C 函数 sprintf 相似。见第 8.4.1 节 format(‘He llo%s, %1$s’, ‘World’) HelloWorld,World
decode(string text, format text) bytea 从 string 中的文本表达 解码二进制数据。format 的选项和 encode 中的一样。 decode(‘MTIzAAE=’ ,’base64’) 3132330001
initcap(string) text 将每一个词的第一个字母转换为大写形式并把剩下的字母转换为小写形式。词是由非字母数字字符分隔的字母数字字符的序列。 initcap(‘hiTHOMAS’) HiThomas
left(str text, n int) text 返回字符串中的前 n 个 字符。当 n 为负时,将 返回除了最后|n|个 left(‘abcde’ ,2) ab
length(string) int string 中的字符数 length(‘jos e’) 4
lpad(stringtext, lengthint [,fill text]) text 将 string 通过前置字符fill(默认是一个空格)填充到长度 length。如果string 已经长于 length,则它被(从右边)截断。 lpad(‘hi’, 5,’xy’) xyxhi
ltrim(string text [,characters text]) text 从 string 的开头删除最 长的只包含 characters (默认是一个空格)的 串 imgltrim(‘zzzy test’’xyz’) test
replace(string text,fromtext, to text) text 将 string 中出现的所有 子串 from 替换为子串 to replace(‘abcdefabcdef ‘,’cd’, ‘XX’)
reverse(str) text 返回反转的字符串。 reverse(‘ab cde’) edcba
COALESCE (参数1,参数2) 为null时返回参数2,不为null返回参数1 COALESCE (‘aa’,’bb’) aa or bb
right(strtext, n int) text 返回字符串中的最后 n 个字符。如果 n 为负, 返回除最前面的|n|个字符外的 所有字符。 right(‘abcd ‘imge 2) de
rpad(stringtext, lengthint [,fill text]) text 将 string 通过增加字符 fill(默认为一个空格) 填充到长度 length 。如 果 string 已经长于 length 则它会被截断。 rpad(‘hi’, 5,’xy’) hixyx
rtrim(string text [,characters text]) text 从 string 的结尾删除最 长的只包含 characters (默认是一个空格)的 串 rtrim(‘testx ‘imgxzx ‘xyz’) test
substr(string, from [, count]) text 提取子串(与substring(stringfrom fromforcount)相同) substr(‘alphabet’, 3, 2)ph