如下,表ly_aNUM REMARK
1 集团
1 用户
3 集团
做了以下操作后变为update ly_a a set a.re=(select b.re||a.re from ly_a b
where a.num=b.num and a.re='集团' and b.re='用户' )
where a.re='集团'NUM REMARK
1 用户集团
1 用户
3
第三行被清空了,我原本的意思是合并前两行数据为1行
即
NUM REMARK
1 集团用户
3 集团
1 集团
1 用户
3 集团
做了以下操作后变为update ly_a a set a.re=(select b.re||a.re from ly_a b
where a.num=b.num and a.re='集团' and b.re='用户' )
where a.re='集团'NUM REMARK
1 用户集团
1 用户
3
第三行被清空了,我原本的意思是合并前两行数据为1行
即
NUM REMARK
1 集团用户
3 集团
解决方案 »
- oracle 的命令在SQL SERVER中如何执行
- 在csdn 我找不到发贴的地方:寻求诚信PHP技术人员合作
- 怎么查看Oracle实例名?
- 安装后产生的错误,实例无法open,服务启动报错,救救我!
- 总是显示栏位的错误invalid column name,本来很简单的问题,却不能显示,大家来救命!在线等!!!
- 在线等 ora-12560: TNS: 协议适配器错误
- 为何我在Win2000Professional下成功安装Oracle8i服务器端后,总是不停弹出窗口提示java程序出错?
- 累加问题!各位大侠帮忙!小弟拜谢了!
- 用DELPHI开发ORACLE应用程序好吗?有前途吗?这样的人有公司要吗?
- 关于ORACLE处理时间中的毫秒问题
- 求sql习题
- 入门问题,
where a.num=b.num and a.re='集团' and b.re='用户' )
where a.num=1这样应该会出现3行
NUM REMARK
1 集团用户
1 集团用户
3 集团如果一定要合并的话,应该要删除重复记录或者INSERT到新表
select 1 NUM ,'集团' REMARK from dual
union
select 1 NUM ,'用户' REMARK from dual
union
select 3 NUM ,'集团' REMARK from dual
)select replace(wmsys.wm_concat(REMARK),',','') REMARK,NUM
from a
group by NUM
因为这个a.num=b.num,关联不上被置空了
分解我的sql语句
update ly_a a set a.re=(select b.re ¦ ¦a.re from ly_a b
where a.num=b.num and a.re='集团' and b.re='用户' )
where a.re='集团' 其中select b.re ¦ ¦a.re from ly_a b ,ly a
where a.num=b.num and a.re='集团' and b.re='用户'出来的应该是
B.REMARK||A.REMARK
用户集团再做update ly_a set a.re='用户集团' where a.re='集团'所以结果应该是
NUM REMARK
1 用户集团
1 用户
3 用户集团而不应该把第3行的re置空吧???
SET A.REMARK = (SELECT A.REMARK||B.REMARK
FROM LY_A B
WHERE A.NUM = B.NUM
AND A.REMARK = '集团'
AND B.REMARK = '用户')
WHERE A.REMARK = '集团'
AND EXISTS (SELECT 1
FROM LY_A B
WHERE A.NUM = B.NUM
AND A.REMARK = '集团'
AND B.REMARK = '用户');
这样写就对了
A B
1 集团 1 集团
1 用户 1 用户
3 集团 3 集团