欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转Oracle:concat、convert和listagg函数的妙用(字符串拼接与类型转换)

最编程 2024-08-08 12:05:12
...

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

推荐阅读