openGauss高级数据库管理:函数——字符串函数和操作符
字符串函数和操作符
-
string || string
描述:连接字符串。
返回值类型:text
示例:
openGauss=# SELECT 'MPP'||'DB' AS RESULT; result -------- MPPDB (1 row) -
bit_length(string)
描述:字符串的位数。
返回值类型:int
示例:
openGauss=# SELECT bit_length('world'); bit_length ------------ 40 (1 row) -
convert(string bytea, src_encoding name, dest_encoding name)
描述:以dest_encoding指定的目标编码方式转化字符串bytea。src_encoding指定源编码方式,在该编码下,string必须是合法的。
返回值类型:bytea
示例:
openGauss=# SELECT convert('text_in_utf8', 'UTF8', 'GBK'); convert ---------------------------- \x746578745f696e5f75746638 (1 row) -
lower(string)
描述:把字符串转化为小写。
返回值类型:varchar
示例:
openGauss=# SELECT lower('TOM'); lower ------- tom (1 row) -
octet_length(string)
描述:字符串中的字节数。
返回值类型:int
示例:
openGauss=# SELECT octet_length('jose'); octet_length -------------- 4 (1 row) -
overlay(string placing string FROM int [for int])
描述:替换子字符串。FROM int表示从第一个string的第几个字符开始替换,for int表示替换第一个string的字符数目。
返回值类型:text
示例:
openGauss=# SELECT overlay('hello' placing 'world' from 2 for 3 ); overlay --------- hworldo (1 row) -
position(substring in string)
描述:指定子字符串的位置。字符串区分大小写。
返回值类型:int,字符串不存在时返回0。
示例:
openGauss=# SELECT position('ing' in 'string'); position ---------- 4 (1 row) -
substring(string [from int] [for int])
描述:截取子字符串,from int表示从第几个字符开始截取,for int表示截取几个字节。
返回值类型:text
示例:
openGauss=# SELECT substring('Thomas' from 2 for 3); substring ----------- hom (1 row) -
substring(string from pattern)
描述:截取匹配POSIX正则表达式的子字符串。如果没有匹配它返回空值,否则返回文本中匹配模式的那部分。
返回值类型:text
示例:
openGauss=# SELECT substring('Thomas' from '...$'); substring ----------- mas (1 row) openGauss=# SELECT substring('foobar' from 'o(.)b'); result -------- o (1 row) openGauss=# SELECT substring('foobar' from '(o(.)b)'); result -------- oob (1 row) -
trim([leading |trailing |both] [characters] from string)
描述:从字符串string的开头、结尾或两边删除只包含characters中字符(缺省是一个空白)的最长的字符串。
返回值类型:varchar
示例:
openGauss=# SELECT trim(BOTH 'x' FROM 'xTomxx'); btrim ------- Tom (1 row)openGauss=# SELECT trim(LEADING 'x' FROM 'xTomxx'); ltrim ------- Tomxx (1 row)openGauss=# SELECT trim(TRAILING 'x' FROM 'xTomxx'); rtrim ------- xTom (1 row) -
upper(string)
描述:把字符串转化为大写。
返回值类型:varchar
示例:
openGauss=# SELECT upper('tom'); upper ------- TOM (1 row) -
ascii(string)
描述:参数string的第一个字符的ASCII码。
返回值类型:integer
示例:
openGauss=# SELECT ascii('xyz'); ascii ------- 120 (1 row) -
btrim(string text [, characters text])
描述:从string开头和结尾删除只包含characters中字符(缺省是空白)的最长字符串。
返回值类型:text
示例:
openGauss=# SELECT btrim('sring' , 'ing'); btrim ------- sr (1 row) -
chr(integer)
描述:给出ASCII码的字符。
返回值类型:varchar
示例:
openGauss=# SELECT chr(65); chr ----- A (1 row) -
convert(string bytea, src_encoding name, dest_encoding name)
描述:以dest_encoding指定的目标编码方式转化字符串bytea。src_encoding指定源编码方式,在该编码下,string必须是合法的。
返回值类型:bytea
示例:
openGauss=# SELECT convert('text_in_utf8', 'UTF8', 'GBK'); convert ---------------------------- \x746578745f696e5f75746638 (1 row) -
initcap(string)
描述:将字符串中的每个单词的首字母转化为大写,其他字母转化为小写。
返回值类型:text
示例:
openGauss=# SELECT initcap('hi THOMAS'); initcap ----------- Hi Thomas (1 row) -
length(string)
描述:获取参数string中字符的数目。
返回值类型:integer
示例:
openGauss=# SELECT length('abcd'); length -------- 4 (1 row) -
lpad(string text, length int [, fill text])
描述:通过填充字符fill(缺省时为空白),把string填充为length长度。如果string已经比length长则将其尾部截断。
返回值类型:text
示例:
openGauss=# SELECT lpad('hi', 5, 'xyza'); lpad ------- xyzhi (1 row) -
ltrim(string [, characters])
描述:从字符串string的开头删除只包含characters中字符(缺省是一个空白)的最长的字符串。
返回值类型:varchar
示例:
openGauss=# SELECT ltrim('xxxxTRIM','x'); ltrim ------- TRIM (1 row) -
md5(string)
描述:将string使用MD5加密,并以16进制数作为返回值。
说明: MD5加密算法安全性低,存在安全风险,不建议使用。返回值类型:text
示例:
openGauss=# SELECT md5('ABC'); md5 ---------------------------------- 902fbdd2b1df0c4f70b4a5d23525e932 (1 row) -
repeat(string text, number int )
描述:将string重复number次。
返回值类型:text。
示例:
openGauss=# SELECT repeat('Pg', 4); repeat ---------- PgPgPgPg (1 row) -
replace(string text, from text, to text)
描述:把字符串string里出现地所有子字符串from的内容替换成子字符串to的内容。
返回值类型:text
示例:
openGauss=# SELECT replace('abcdefabcdef', 'cd', 'XXX'); replace ---------------- abXXXefabXXXef (1 row) -
rpad(string text, length int [, fill text])
描述:使用填充字符fill(缺省时为空白),把string填充到length长度。如果string已经比length长则将其从尾部截断。
返回值类型:text
示例:
openGauss=# SELECT rpad('hi', 5, 'xy'); rpad ------- hixyx (1 row) -
rtrim(string text [, characters text])
描述:从字符串string的结尾删除只包含characters中字符(缺省是个空白)的最长的字符串。
返回值类型:text
示例:
openGauss=# SELECT rtrim('trimxxxx', 'x'); rtrim ------- trim (1 row) -
split_part(string text, delimiter text, field int)
描述:根据delimiter分隔string返回生成的第field个子字符串(从出现第一个delimiter的text为基础)。
返回值类型:text
示例:
openGauss=# SELECT split_part('abc~@~def~@~ghi', '~@~', 2); split_part ------------ def (1 row) -
strpos(string, substring)
描述:指定的子字符串的位置。和position(substring in string)一样,不过参数顺序相反。
返回值类型:int
示例:
openGauss=# SELECT strpos('source', 'rc'); strpos -------- 4 (1 row) -
to_hex(number int or bigint)
描述:把number转换成十六进制表现形式。
返回值类型:text
示例:
openGauss=# SELECT to_hex(2147483647); to_hex ---------- 7fffffff (1 row) -
translate(string text, from text, to text)
描述:把在string中包含的任何匹配from中字符的字符转化为对应的在to中的字符。如果from比to长,删掉在from中出现的额外的字符。
返回值类型:text
示例:
openGauss=# SELECT translate('12345', '143', 'ax'); translate ----------- a2x5 (1 row)

浙公网安备 33010602011771号