openGauss SQL参考—函数和操作符:字符处理函数和操作符(1)
字符处理函数和操作符
openGauss提供的字符处理函数和操作符主要用于字符串与字符串、字符串与非字符串之间的连接,以及字符串的模式匹配操作。注意:字符串处理函数除了length相关函数,其他函数和操作符不支持大于1GBclob作为参数。
-
bit_length(string)
描述:字符串的位数。
返回值类型:int
示例:
openGauss=# SELECT bit_length('world'); bit_length ------------ 40 (1 row) -
btrim(string text [, characters text])
描述:从string开头和结尾删除只包含characters中字符(缺省是空白)的最长字符串。
返回值类型:text
示例:
openGauss=# SELECT btrim('sring' , 'ing'); btrim ------- sr (1 row) -
char_length(string)或character_length(string)
描述:字符串中的字符个数。
返回值类型:int
示例:
openGauss=# SELECT char_length('hello'); char_length ------------- 5 (1 row) -
instr(text,text,int,int)
描述:instr(string1,string2,int1,int2)返回在string1中从int1位置开始匹配到第int2次string2的位置,第一个int表示开始匹配起始位置,第二个int表示匹配的次数。
返回值类型:int
示例:
openGauss=# SELECT instr( 'abcdabcdabcd', 'bcd', 2, 2 ); instr ------- 6 (1 row) -
lengthb(text/bpchar)
描述:获取指定字符串的字节数。
返回值类型:int
示例:
openGauss=# SELECT lengthb('hello'); lengthb --------- 5 (1 row) -
left(str text, n int)
描述:返回字符串的前n个字符。当n是负数时,返回除最后|n|个字符以外的所有字符。
返回值类型:text
示例:
openGauss=# SELECT left('abcde', 2); left ------ ab (1 row) -
length(string bytea, encoding name )
描述:指定encoding编码格式的string的字符数。在这个编码格式中,string必须是有效的。
返回值类型:int
示例:
openGauss=# SELECT length('jose', 'UTF8'); length -------- 4 (1 row)
说明:如果是查询bytea类型的长度,指定utf8编码时,最大长度只能为536870888。
-
lpad(string text, length int [, fill text])
描述:通过填充字符fill(缺省时为空白),把string填充为length长度。如果string已经比length长则将其尾部截断。
返回值类型:text
示例:
openGauss=# SELECT lpad('hi', 5, 'xyza'); lpad ------- xyzhi (1 row) -
notlike(x bytea name text, y bytea text)
描述:比较x和y是否不一致。
返回值类型:bool
示例:
openGauss=# SELECT notlike(1,2); notlike -------------- t (1 row) openGauss=# SELECT notlike(1,1); notlike -------------- f (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) -
pg_client_encoding()
描述:当前客户端编码名称。
返回值类型:name
示例:
openGauss=# SELECT pg_client_encoding(); pg_client_encoding -------------------- UTF8 (1 row) -
quote_ident(string text)
描述:返回适用于SQL语句的标识符形式(使用适当的引号进行界定)。只有在必要的时候才会添加引号(字符串包含非标识符字符或者会转换大小写的字符)。返回值中嵌入的引号都写了两次。
返回值类型:text
示例:
openGauss=# SELECT quote_ident('hello world'); quote_ident -------------- "hello world" (1 row) -
quote_literal(string text)
描述:返回适用于在SQL语句里当作文本使用的形式(使用适当的引号进行界定)。
返回值类型:text
示例:
openGauss=# SELECT quote_literal('hello'); quote_literal --------------- 'hello' (1 row)如果出现如下写法,text文本将进行转义。
openGauss=# SELECT quote_literal(E'O\'hello'); quote_literal --------------- 'O''hello' (1 row)如果出现如下写法,反斜杠会写入两次。
openGauss=# SELECT quote_literal('O\hello'); quote_literal --------------- E'O\\hello' (1 row)如果参数为NULL,返回空。如果参数可能为null,通常使用函数quote_nullable更适用。
openGauss=# SELECT quote_literal(NULL); quote_literal --------------- (1 row)

浙公网安备 33010602011771号