openGauss SQL参考—函数和操作符:字符处理函数和操作符(2)

  • quote_literal(value anyelement)

    描述:将给定的值强制转换为text,加上引号作为文本。

    返回值类型:text

    示例:

    openGauss=# SELECT quote_literal(42.5);
     quote_literal 
    ---------------
     '42.5'
    (1 row)
    

    如果出现如下写法,定值将进行转义。

    openGauss=# SELECT quote_literal(E'O\'42.5');
     quote_literal
    ---------------
     '0''42.5'
    (1 row)
    

    如果出现如下写法,反斜杠会写入两次。

    openGauss=# SELECT quote_literal('O\42.5');
     quote_literal 
    ---------------
     E'O\\42.5'
    (1 row)
    
  • quote_nullable(string text)

    描述:返回适用于在SQL语句里当作字符串使用的形式(使用适当的引号进行界定)。

    返回值类型:text

    示例:

    openGauss=# SELECT quote_nullable('hello');
     quote_nullable 
    ----------------
     'hello'
    (1 row)
    

    如果出现如下写法,text文本将进行转义。

    openGauss=# SELECT quote_nullable(E'O\'hello');
     quote_nullable
    ----------------
     'O''hello'
    (1 row)
    

    如果出现如下写法,反斜杠会写入两次。

    openGauss=# SELECT quote_nullable('O\hello');
     quote_nullable
    ----------------
     E'O\\hello'
    (1 row)
    

    如果参数为NULL,返回NULL。

    openGauss=# SELECT quote_nullable(NULL);
     quote_nullable
    ----------------
     NULL
    (1 row)
    
  • quote_nullable(value anyelement)

    描述:将给定的参数值转化为text,加上引号作为文本。

    返回值类型:text

    示例:

    openGauss=# SELECT quote_nullable(42.5);
     quote_nullable
    ----------------
     '42.5'
    (1 row)
    

    如果出现如下写法,定值将进行转义。

    openGauss=# SELECT quote_nullable(E'O\'42.5');
     quote_nullable 
    ----------------
     'O''42.5'
    (1 row)
    

    如果出现如下写法,反斜杠会写入两次。

    openGauss=# SELECT quote_nullable('O\42.5');
     quote_nullable
    ----------------
     E'O\\42.5'
    (1 row)
    

    如果参数为NULL,返回NULL。

    openGauss=# SELECT quote_nullable(NULL);
     quote_nullable
    ----------------
     NULL
    (1 row)
    
  • substring_inner(string [from int] [for int])

    描述:截取子字符串,from int表示从第几个字符开始截取,for int表示截取几个字节。

    返回值类型:text

    示例:

    openGauss=# select substring_inner('adcde', 2,3);
     substring_inner
    -----------------
     dcd
    (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)
    

     说明:

    如果POSIX正则表达式模式包含任何圆括号,那么将返回匹配第一对子表达式(对应第一个左圆括号的)的文本。如果你想在表达式里使用圆括号而又不想导致这个例外,那么你可以在整个表达式外边放上一对圆括号。

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