问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ORACLE 多行字符串合并的问题

发布网友 发布时间:2022-04-22 09:46

我来回答

5个回答

懂视网 时间:2022-05-02 07:30


wm_concat(列名),该函数可以把列值以“,”号分隔起来,并显示成一行。如果列值是中文的,则选择另一种方式: wm_concat(to_char(列名))

例如下面例子:

技术分享

执行下面SQL:select id,wm_concat(to_char(name)) name from testTable group by id; 可得到下面结果

技术分享

2.替换函数 replace(原字段,“原字段旧内容“,“原字段新内容“,)

 执行下面SQL:select id,name,replace(num,‘10‘,‘5‘) num0 from testTable ;  可得到下面结果

技术分享

3.拼接字符串函数concat(字串1, 字串2)

对于字符串拼接,每一种资料库都有戏相应方法-----MySQL: CONCAT()      Oracle: CONCAT(), ||      SQL Server: +

CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。但是,Oracle的CONCAT()只允许两个参数,如要拼接多个参数则嵌套使用concat可实现,或者可以使用“||”来拼接 !!!

执行下面SQL:1)select name || ‘(‘ || num || ‘斤)‘ as str from testTable ; 

                      2)select concat(name, ‘(‘ || num || ‘斤)‘) as str from testTable ;可得到下面结果

技术分享

4.截取字符串函数substr(字符串,截取开始位置,截取长度)

 执行下面SQL:  select substr(name,0,1) str from testTable; 可得到下面结果

技术分享

5.查找函数INSTR(string,subString,position,ocurrence)查找字符串位置

该函数可以用于模糊查询以及判断包含关系:

例如:1) select id,name ,num from testTable where instr(name,‘香蕉‘)>0;

等同于  select id,name ,num from testTable where name like ‘%香蕉%‘;

          2)  select id,name ,num from testTable where instr(‘123,香蕉‘,name)>0;

等同于  select id,name ,num from testTable where name in (‘123,香蕉‘);

 

 

Oracle函数--合并,替换,拼接,截取,查找

标签:rom   cat   mysql   判断   str   替换函数   ring   com   bsp   

热心网友 时间:2022-05-02 04:38

--测试数据
with tmp(COL1,COL2) as (
select 'A','010000000000000010000' from al union all
select 'A','000000001000000010000' from al union all
select 'A','100000000001000000010' from al union all
select 'B','000000110001000000000' from al union all
select 'B','000100000000000000001' from al union all
select 'B','000001000001100010000' from al)
--直接取每一位,进行聚合或操作,再拼接起来
select COL1
,max(substr(COL2,1,1))||max(substr(COL2,2,1))||max(substr(COL2,3,1))||max(substr(COL2,4,1))||max(substr(COL2,5,1))||max(substr(COL2,6,1))||max(substr(COL2,7,1))||max(substr(COL2,8,1))||max(substr(COL2,9,1))||max(substr(COL2,10,1))||max(substr(COL2,11,1))||max(substr(COL2,12,1))||max(substr(COL2,13,1))||max(substr(COL2,14,1))||max(substr(COL2,15,1))||max(substr(COL2,16,1))||max(substr(COL2,17,1))||max(substr(COL2,18,1))||max(substr(COL2,19,1))||max(substr(COL2,20,1))||max(substr(COL2,21,1)) as COL2
from tmp
group by COL1;

结果:

热心网友 时间:2022-05-02 05:56

ORACLE 多行字符串无法合并因为并未提供这样的函数,需要对每个字符串单独处理后,用concat拼接处理。
如有字符串:
AAAAA
BBBBBB

CCCCC
若要替换AAAAA为1AAAAA就用replaceFirst('1')
最后多行合并用concat:
select concat(concat('1AAAAA','BBBBB'),'CCCCCC') from al

热心网友 时间:2022-05-02 07:31

这个感觉只能用sum,其他应该很麻烦。
你的COL2应该是varchar2类型,你用PL/SQL调一下显示效果就可以了,其中位数不足的在前面补0。

热心网友 时间:2022-05-02 09:22

“最后想得到的结果为,若有为1 的值,则替换掉为0 的值”意思是用1代替0吗?追问可以这么理解

追答你sum之后用to_char转换看一下

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
寿司连锁店游戏破解版 韩式寿司店中文版下载(韩式寿司店) 《老爹的寿司店》游戏界面中文设置教程 寿司翻译成中文如何下载 我的寿司店中文版下载如何下载 我的寿司店游戏破解版 怎么取消序时制单用友t3 ...有标题1,2,4,5,6,7,8,9 但是没有标题3,这是怎么回事啊? 快手猪脚姜的做法 精选10道快手菜!每天不重样,天天吃不腻,只需10分钟!值得收藏 谁能给我个sql2000的连加字符串的聚集函数 python聚类分析可以用字符串吗 07-SQLSERVER聚合函数 华为手机有s型的吗 java字符串数组合并 怎么合并成一个数组? 华为发布的新机是什么,价格参数。荣耀8何时上市 如何对r中包含字符串变量的数据集进行K均值聚类 access能不能实现字符串连接的聚合函数,类似于sum 我是女生妈妈说明天带我去割礼 什么是割礼? 疼吗?我应该去吗? 华为新机V9和P10同样搭载麒麟960,有什么不一样 sql 语句中那些是聚合函数? SQL是否有用于字符串的聚合函数设有SUM 印尼现在女子还割礼吗? SQL 对字符串的聚合函数是什么? 如何在sql server的group by语句中聚合字符串字段 数据库SQL语言,字符串聚合 C语言字符串会聚 MySql SELECT 字符串聚合 印度的割礼是什么 oracle 10g怎么实现 listagg功能 sql server 有类似 listagg 函数吗 和探探,陌陌类似的软件有哪些 之前有一个名字和陌陌差不多的社交软件叫什么名字? 有没有和陌陌一样的软件 涓什么意思?近义词和反义词是什么?英文翻译是什么? edge阅读模式打不开 和陌陌差不多类型的软件有哪些求教高分哦 葛静用韩文翻译是什么 除了陌陌还有哪些交友软件比较好 男人叫你老婆意味着什么? 盲少爱妻上瘾 阿源的十万个为什么 微软Edge浏览器无干扰阅读模式怎么使用 看了王虹老师的礼仪课,我因该怎样写心得给老师 天津市南海风情商贸有限公司怎么样? 北京巴拉克实验动物科技服务中心怎么样? 买车了朋友说恭喜恭喜怎样回复 上海进懋资产管理有限公司怎么样? 做*镜检查会对*造成创伤吗 贵州黔南州福泉市境内,为何有一座“豆腐桥”?