oracle的concat、convert、listagg函数(字符串拼接和类型转换)

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

 

 

 

原文地址:https://www.cnblogs.com/xiaoneng/p/10557438.html