二进制字符串函数和操作符

字符串操作符

SQL定义了一些字符串函数,在这些函数里使用关键字而不是逗号来分隔参数。

  • octet_length(string)

描述:二进制字符串中的字节数。

返回值类型:int

示例:

1. openGauss=# SELECT octet_length(E'jo\\000se'::bytea) AS RESULT; 2. result 3. -------- 4. 5 5. (1 row) - overlay(string placing string from int [for int])

描述:替换子串。

返回值类型:bytea

示例:

1. openGauss=# SELECT overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3) AS RESULT; 2. result 3. ---------------- 4. \x5402036d6173 5. (1 row) - position(substring in string)

描述:特定子字符串的位置。

返回值类型:int

示例:

1. openGauss=# SELECT position(E'\\000om'::bytea in E'Th\\000omas'::bytea) AS RESULT; 2. result 3. -------- 4. 3 5. (1 row) - substring(string [from int] [for int])

描述:截取子串。

返回值类型:bytea

示例:

1. openGauss=# SELECT substring(E'Th\\000omas'::bytea from 2 for 3) AS RESULT; 2. result 3. ---------- 4. \x68006f 5. (1 row) - substr(string, from int [, for int])

描述:截取子串。

返回值类型:bytea

示例:

1. openGauss=# select substr(E'Th\\000omas'::bytea,2, 3) as result; 2. result 3. ---------- 4. \x68006f 5. (1 row) - trim([both] bytes from string)

描述:从string的开头和结尾删除只包含bytes中字节的最长字符串。

返回值类型:bytea

示例:

1. openGauss=# SELECT trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea) AS RESULT; 2. result 3. ---------- 4. \x546f6d 5. (1 row)

二进制字符串函数

openGauss也提供了函数调用所使用的常用语法。

  • btrim(string bytea,bytes bytea)

描述:从string的开头和结尾删除只包含bytes中字节的最长的字符串。

返回值类型:bytea

示例:

1. openGauss=# SELECT btrim(E'\\000trim\\000'::bytea, E'\\000'::bytea) AS RESULT; 2. result 3. ------------ 4. \x7472696d 5. (1 row) - get_bit(string, offset)

描述:从字符串中抽取位。

返回值类型:int

示例:

1. openGauss=# SELECT get_bit(E'Th\\000omas'::bytea, 45) AS RESULT; 2. result 3. -------- 4. 1 5. (1 row) - get_byte(string, offset)

描述:从字符串中抽取字节。

返回值类型:int

示例:

1. openGauss=# SELECT get_byte(E'Th\\000omas'::bytea, 4) AS RESULT; 2. result 3. -------- 4. 109 5. (1 row) - rawcmp

描述:raw数据类型比较函数。

参数:raw, raw

返回值类型:integer - raweq

描述:raw数据类型比较函数。

参数:raw, raw

返回值类型:boolean - rawge

描述:raw数据类型比较函数。

参数:raw, raw

返回值类型:boolean - rawgt

描述:raw数据类型比较函数。

参数:raw, raw

返回值类型:boolean - rawin

描述:raw数据类型解析函数。

参数:cstring

返回值类型:bytea - rawle

描述:raw数据类型解析函数。

参数:raw, raw

返回值类型:boolean - rawlike

描述:raw数据类型解析函数。

参数:raw, raw

返回值类型:boolean - rawlt

描述:raw数据类型解析函数。

参数:raw, raw

返回值类型:boolean - rawne

描述:比较raw类型是否一样。

参数:raw, raw

返回值类型:boolean - rawnlike

描述:比较raw类型与模式是否不匹配。

参数:raw, raw

返回值类型:boolean - rawout

描述:RAW类型的输出接口。

参数:bytea

返回值类型:cstring - rawsend

描述:转换bytea为二进制类型。

参数:raw

返回值类型:bytea - rawtohex

描述:raw格式转换为十六进制。

参数:text

返回值类型:text - set_bit(string,offset, newvalue)

描述:设置字符串中的位。

返回值类型:bytea

示例:

1. openGauss=# SELECT set_bit(E'Th\\000omas'::bytea, 45, 0) AS RESULT; 2. result 3. ------------------ 4. \x5468006f6d4173 5. (1 row) - set_byte(string,offset, newvalue)

描述:设置字符串中的字节。

返回值类型:bytea

示例:

1. openGauss=# SELECT set_byte(E'Th\\000omas'::bytea, 4, 64) AS RESULT; 2. result 3. ------------------ 4. \x5468006f406173 5. (1 row)