原始数据:
SN KP
123456 BP0
123456 DP0
123456 SAD
123456 DAS想修改成的样子:
SN KPX KPY
123456 BP0 DP0所有数据都是varchar
SELECT SN,DECODE(KP,'BP',KP,NULL),DECODE(KP,'DP',KEY_PART_NO,NULL) FROM SFISM4.R_WIP_KEYPARTS_T where SERIAL_NUMBER = '123456'GROUP BY SN,DECODE(KP,'BP',KP,NULL),DECODE(KP,'DP',KEY_PART_NO,NULL)只是GROUP BY SN,直接出错,看了资料,必须带上后面的
但是这样的结果是SN KPX KPY
123456 BP0
123456 DP0
SN KP
123456 BP0
123456 DP0
123456 SAD
123456 DAS想修改成的样子:
SN KPX KPY
123456 BP0 DP0所有数据都是varchar
SELECT SN,DECODE(KP,'BP',KP,NULL),DECODE(KP,'DP',KEY_PART_NO,NULL) FROM SFISM4.R_WIP_KEYPARTS_T where SERIAL_NUMBER = '123456'GROUP BY SN,DECODE(KP,'BP',KP,NULL),DECODE(KP,'DP',KEY_PART_NO,NULL)只是GROUP BY SN,直接出错,看了资料,必须带上后面的
但是这样的结果是SN KPX KPY
123456 BP0
123456 DP0
解决方案 »
- oracle问题,急!~
- oracle
- Update语句怎样一次完成一一对应的数据更新???
- 8年后再次踏进oracle开发,大家给点意见。
- 很难的SQL语句问题
- 重新建数据库的原因
- 请bzszp(www.bzszp.533.net) 、 freddy2003()、 jack_4826(天下无双)阶段接分! 创建生成脚本(解决后再散500分) 一笑而过让散的500分
- 请教:一个关于回滚的简单问题,在线等待
- oracle8.17的客户端能不能访问oracle8.0服务端
- 物料批次控制后,采购接收事务处理没有产生批次问题
- create user identified by ""
- oracle10g如何修改字符集
SN KPX KPY KPZ KPW
123456 BPO DPO SAD DAS
因为他们的SN都是123456啊
因为数据记录,先记录SN,然后记录数据
而不是记录在一条row里的
而是分开很多row我想要的结果是这个
但是目前数据是
原始数据:
SN KP
123456 BP0
123456 DP0
123456 SAD
123456 DAS
要得到的结果是 楼上说的oracle数据库
别说让我改数据库啊,目前这个系统已经有非常多的数据了!
123456 BP0
123456 DP0
123456 SAD
123456 DAS做一个查询
达到这样的效果
SN KPX KPY
123456 BP0 DP0
目前我做到这样了
SN KPX KPY
123456 BP0 null
123456 null DP0
说实话没看明白你的描述,不过你既然已经得到这个结果,再以他为子查询来个max就好了。
select sn,max(kpx) as kpx,max(kpy) as kpy
from (你的查询语句)
group by sn;
为什么只保留2个值: BP0、DP0另外,满足了123456,是否可以满足其它的呢?
下面只是满足横列转换:
select sn,max(kpx) as kpx,max(kpy) as kpy
from (你的查询语句)
group by sn;