db2的SQL问题
现有数据:column1,column2 1 一 1 二 1 三 2 二 3 四 3 五 要得到如下数据: 1 一,二,三 2 二 3 四,五 如何通过一个sql语句实现 不需要写过程,最好select语句实现。
追问:上面的数据仅是一部分,column1列可能对应column2的4个,5个。。。。或者更多。现在是想将2层游标优化一下。也就是说必须的用游标了!
现有数据: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