当前位置:数据库 > DB2 >>

db2的SQL问题

现有数据:column1,column2 1 一 1 二 1 三 2 二 3 四 3 五 要得到如下数据: 1 一,二,三 2 二 3 四,五 如何通过一个sql语句实现 不需要写过程,最好select语句实现。
追问:上面的数据仅是一部分,column1列可能对应column2的4个,5个。。。。或者更多。现在是想将2层游标优化一下。也就是说必须的用游标了!
答案:select col1, max(case when rk = 1 then col2||',' else null end) || 
                  max(case when rk = 2 then col2||',' else null end) || 
                  max(case when rk = 3 then col2||',' else null end) 
from (SELECT col1, col2, rownumber() over(partition by col1 order by col2) rk from tab) t
group by col1
其他:select max(column1),max(column2)
from 表
group by column1  
运行下 不知道是不是你要的结果 

上一个:db2 归档日志误删怎么解除回滚
下一个:DB2 SQL error: SQLCODE: -805, SQLSTATE: 51002, SQLERRMC: NULLID.SYSLH203 0X5359534C564C3031

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,