oracle的concat、convert、listagg函數(字符串拼接和類型轉換)
阿新 • • 發佈:2019-03-20
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函數(字符串拼接和類型轉換)