1. 程式人生 > >oracle的concat、convert、listagg函數(字符串拼接和類型轉換)

oracle的concat、convert、listagg函數(字符串拼接和類型轉換)

dual name ase oracl wid 返回值 說明 laserjet 基於

ORACLE幾種常用的方法(2)

1、concat常見的用法 :

  格式:concat(String1,String2)

  說明:concat函數用於將兩個字符串連接起來,形成一個單一的字符串

  實例:

select concat(bokeyuan,xiaoneng) from dual;
-- 運行結果
bokeyuanxiaoneng

2、‘||’常見的用法 :

  格式:string1||string2||string3

  說明:區別於concat,“||”用於將多個字符串連接起來,形成一個單一的字符串

  實例:

select abc||def||gg from dual;
-- 結果
abcdefgg

3、convert

  格式:CONVERT( string1, char_set_to [, char_set_from] )

  說明:主要用戶SqlServer中,把日期轉換為新數據類型的通用函數。

     string1:要轉換的字符串。char_set_to:要轉換為的字符集。char_set_from:可選的,要從中轉換的字符集。

     返回值:CONVERT函數返回特定字符集中的字符串值。 可用的字符集是:

字符集描述
US7ASCII 美國7位ASCII字符集
WE8DEC 西歐8位字符集
WE8HP 惠普西歐Laserjet 8位字符集
F7DEC DEC法語7位字符集
WE8EBCDIC500 IBM西歐EBCDIC代碼第500頁
WE8PC850 IBM PC代碼第850頁
WE8ISO8859P1 ISO 8859-1西歐8位字符集

  

  實例:

CONVERT(A B C D E Ä Ê Í Õ Ø
, US7ASCII, WE8ISO8859P1) -- 結果: ‘A B C D E ? ?? ?? ? ?‘

4、listagg

  格式:listagg(measure_expr,delimiter) within group(order by name)

  說明:在每個分組內,LISTAGG根據order by子句對列進行的排序,將排序後的結果拼接起來

     measure_expr:可以是任何基於列的表達式。

      delimiter:分隔符,默認為NULL,即沒有任何分隔符直接拼接

      order_by_clause:order by子句決定了列值被拼接的順序。可以按照任何列排序

  實例:

select listagg(t.cname) within group(order by t.cname) name from cname t;
-- 結果   xiaohongxiaolixiaoming
select listagg(t.cname,--) within group(order by t.cname) name from cname t;
-- 結果   xiaohong--xiaoli--xiaoming

oracle的concat、convert、listagg函數(字符串拼接和類型轉換)