openGauss SQL参考—函数和操作符:字符处理函数和操作符(8)
-
返回值类型:hstore
示例:
openGauss=# select tconvert('aa', 'bb'); tconvert ------------ "aa"=>"bb" (1 row) -
find_in_set(text, set)
描述:查找给定成员在集合中的位置,从1开始计数。如果没有找到,返回0。此函数仅支持兼容B库,其他兼容模式下不保证功能。
返回值类型:int2
示例:
openGauss=# select site, find_in_set('wuhan', site) from employee; site | find_in_set -----------------+------------- beijing,nanjing | 0 beijing,wuhan | 2 (2 rows) -
encode(data bytea, format text)
描述:将二进制数据编码为文本数据。
返回值类型:text
示例:
openGauss=# SELECT encode(E'123\\000\\001', 'base64'); encode ---------- MTIzAAE= (1 row)
说明:
若字符串中存在换行符,如字符串由一个换行符和一个空格组成,在openGauss中LENGTH和LENGTHB的值为2。
对于CHAR(n) 类型,openGauss中n是指字符个数。因此,对于多字节编码的字符集, LENGTHB函数返回的长度可能大于n。
openGauss支持多种类型的数据库,目前有4种,分别是A类型、B类型、C类型以及PG类型。在不指定数据库类型时,我们的数据库默认是A类型,A的词法分析器与另外三种不一样,在A中空字符串会被当作是NULL。所以,当使用A类型的数据库时,假如上述字符操作函数中有空字符串作为参数,会出现没有输出的情况。例如:
openGauss=# SELECT translate('12345','123',''); translate ----------- (1 row)这是因为内核在调用相应的函数进行处理前,会判断所输入的参数中是否含有NULL,假如有,则不会调用相应的函数,因此会没有输出。而在PG模式下,字符串的处理方式与postgresql保持一致,因此不会有上述问题产生。

浙公网安备 33010602011771号