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

DB2数据库查询到多行数据想要将上一行的字段A内容b和下一行同一字段A内容c拼接在一起变成b--c,第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)

更新后结果:

语法是这样的:

select * from table1 fetch first 1 rows only

将1改成其他数可以修改返回的记录行数

fetch前面可以加where条件和order by排序。

查询一个表中某两个字段的相同数据代码是:Select Name,ID From A group by Name,ID having count (*)>1。

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

sql 语句就是对数据库进行 *** 作的一种语言。

sql="select * from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列,默认升序ASC);

sql="select * from 数据表 where字段名like '%字段值%' order by 字段名 [desc]";

sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]";

sql="select top 10 * from 数据表 order by 字段名 [desc]";

sql="select * from 数据表 where字段名in ('值1','值2','值3')";

sql="select * from 数据表 where字段名between 值1 and 值2"。

sql语句:

更新:update table1 set field1=value1 where 范围;

查找:select * from table1 where field1 like '%value1%' (所有包含'value1'这个模式的字符串);

排序:select * from table1 order by field1,field2 [desc];

求和:select sum(field1) as sumvalue from table1;

平均:select avg(field1) as avgvalue from table1;

最大:select max(field1) as maxvalue from table1;

最小:select min(field1) as minvalue from table1[separator]。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9621282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存