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保持一致,因此不会有上述问题产生。

posted @ 2024-07-30 10:37  openGauss-bot  阅读(26)  评论(0)    收藏  举报