DB2数据库查询到多行数据想要将上一行的字段A内容b和下一行同一字段A内容c拼接在一起变成b--c

例如这样的:
2025-01-19 22:20:03
推荐回答(1个)
回答1:

没有db2环境,oracle写个了,语法应该差不多

创建表t,时间字段用的字符型,这个如果你不是字符型的话,需要自己转换一下db2里的字段类型。

执行update语句:

update t t1
   set t1.start_end_date =
       (select t2.start_end_date
          from (select a.oid,
                       case
                         when a.oid <> (select max(oid) from t) then
                          a.tdate || '--' || b.tdate
                         else
                          a.tdate || '--' || '今'
                       end start_end_date
                  from t a
                  left join t b
                    on a.oid = b.oid - 1) t2
         where t1.oid = t2.oid)

更新后结果: