VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

字符串函数

  • wm_concat(text)

    多行记录拼接成单行记录显示。

    atlasdb=# select * from t;
    col 
    -----
    1
    2
    3
    4
    100
    20
    (6 rows)
    
    atlasdb=# select wm_concat(col::text) as qlr from t;
      qlr       
    ----------------
    1,2,3,4,100,20
    (1 row)
    
  • dump(expr)

    返回在数据库内部对前面的这个expr存储形式。

    atlasdb=# select information_schema.dump('asdasdadasd');
                              dump                               
    -----------------------------------------------------------------
    Typ=25 Len=15: 60,0,0,0,97,115,100,97,115,100,97,100,97,115,100
    (1 row)
    
  • empty_clob()

    返回一个空CLOB类型。

    atlasdb=# select empty_clob();
    empty_clob 
    ------------
     
    (1 row)
    
  • hextoraw(char)

    将十六进制字符串转换为RAW类型的值。

    atlasdb=# select oracle.hextoraw('ABCDEF');
    hextoraw
    ----------
    xabcdef
    (1 row)
    
  • instr(string, substring[, position[, occurrence]])

    返回从字符string的第position位置开始,第occurrence次出现的子串substring起始位置,默认从字符串string首部开始第一次出现的位置。

    atlasdb=# select instr('asdasdasdas','da');
    instr 
    -------
     3
    (1 row)
    
  • nlssort(char [, nlsparam])

    按照nlsparam指定的排序字符集对字符串char进行排序,默认使用char字符串字符集排序;

    atlasdb=# select nlssort('Vaacadtw');
      nlssort       
    --------------------
    x5661616361647477
    (1 row)
    
  • lengthb(char)

    返回char字符的字节长度,char支持的类型为所有字符串类型(如CHAR,VARCHAR2, NCHAR,NVARCHAR2等)或可隐式转换为字符串的类型(如integer等)。

    atlasdb=# select lengthb('dasdas');
    lengthb 
    ---------
       6
    (1 row)
    
  • listagg(measure_expr[, 'delimiter'])

    以特定的分隔符将字段进行拼接。

    atlasdb=# select listagg('a',',');
    listagg 
    ---------
    a
    (1 row)
    
  • nvl2(e1,e2,e3)

    如果e1为NULL,则函数返回e3,若e1不为null,则返回e2。

    atlasdb=# select information_schema.nvl2(1,2,3);
    nvl2 
    ------
    2
    (1 row)
    
  • NVL

    NVL 查询结果中用字符串替换null。

    atlasdb=# select nvl('',1);
    nvl 
    -----
    1
    (1 row)
    
  • rawtohex(raw)

    将RAW类型的值转换为十六进制字符串。

    atlasdb=# select oracle.rawtohex('s');
    rawtohex 
    ----------
    73
    (1 row)
    
  • regexp_instr(source_char,pattern[, position[, occurrence[,return_opt[, match_param[, subexpr]]]]])

    该函数拓展了INSTR函数的功能,允许使用正则表达式匹配,返回值类型为INTEGER。position表示查找起始位置。occurrence表示查找pattern在source_char的第几次出现。return_opt:取值为0表示返回模式匹配的起始位置。取值为1表示返回模式匹配的结束位置。match_param表示正则表达式模式匹配控制参数,如区分大小写等。subexpr表示正则表达式分组匹配的组号。

    atlasdb=# SELECT REGEXP_INSTR ('my is itMyhome', 'm', 1, 2, 0, 'c')
    atlasdb-# FROM dual; 
    regexp_instr 
    --------------
           13
    (1 row)
    
  • regexp_replace(source_char,pattern [, replace_string [, position> [, occurrence [, match_parameter ] ] ] ] )

    搜索的字符串的正则表达式模式REPLACE函数的功能。

    atlasdb=# select regexp_replace('0123456789','01234','0abc') from dual;
    regexp_replace 
    ----------------
    0abc56789
    (1 row)
    
  • regexp_substr(source_char,pattern[,position[,occurrence[,match_param[,subexpr]]]])

    按正则表达式在source_char字符串中匹配子字符串。source_char为查找的输入字符串,支持所有字符串类型(如CHAR, VARCHAR2, NCHAR, NVARCHAR2等)或可隐式转换为字符串的类型(如integer等)。pattern为子字符串匹配的正则表达式。position为指定匹配的起始字符位置。occurrence为pattern在source_char出现的次数。

    atlasdb=# SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL;  
    str 
    -----
    17
    (1 row)
    
  • TRIM

    TRIM修剪字符串中的前导或尾随字符(或两者)。

    atlasdb=# select trim(leading 'a' from 'abcdddasds');
    ltrim   
    -----------
    bcdddasds
    (1 row)
    
  • rtrim(c1,[,c2])

    删除左边出现的字符串。

    atlasdb=#  select ltrim('sdaf','s');
    ltrim 
    -------
    daf
    (1 row)
    
  • rtrim(c1,[,c2])

    删除右边出现的字符串。

    atlasdb=# select rtrim('sdaf','f'); rtrim ------- sda(1 row)
    
  • substrb(char, position[, substring_length])

    返回char字符串中第position个字节开始,长度为substring_length字节的子字符串。若不指定substring_length,则截取到字符串结尾。

    atlasdb=# select substrb('sadas',1,3);
    substrb 
    ---------
    sad
    (1 row)
    
  • to_blob(char)

    将char字符串转换为BLOB类型,char支持的类型为所有字符串类型(如CHAR, VARCHAR2, NCHAR, NVARCHAR2等)或可隐式转换为字符串的类型(如integer等)。

    atlasdb=# select to_blob('abcdsa');
    to_blob     
    ----------------
    x616263647361
    (1 row)
    
  • to_clob(char)

    将char字符串转换为CLOB数据类型。

    atlasdb=# select to_clob('aaa');
    to_clob 
    ---------
    aaa
    (1 row)
    
  • to_multi_byte(str)

    将单字节输入字符串转换为多字节字符串。

    atlasdb=# select oracle.to_multi_byte('a');
    to_multi_byte 
    ---------------
    a
    (1 row)
    
  • to_single_byte(str)

    全角的数字/字母/标点符号转半角。

    atlasdb=#  SELECT To_Single_Byte('aaa') FROM dual;
    to_single_byte 
    ----------------
    aaa
    (1 row)
    
  • decode

    decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

    atlasdb=#  select decode('1','2','v2','3','v3','nofound');
    case   
    ---------
    nofound
    (1 row)