怎么在SQL里逐行修改数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在SQL里逐行修改数据相关的知识,希望对你有一定的参考价值。

我有这样一列数据, ID Time
1
2
3
4 01:01:09
5
6
7
8 01:01:13
根据非空数据,对Time列进行空缺值填充,每相邻的两个记录相差一秒。根据第四个记录,第一个记录应为01:01:06,第二个记录为01:01:07,第三个记录为01:01:08。
哪位知道对这列的空缺值填充怎么实现?谢谢!

以下脚本哪怕不是相差1秒也能填充

update 表
set time=dateadd(mi,datediff(mi,min(time),max(time))*1.0/((select id from 表 where time=(select max(time) from 表))-(select id from 表 where time=(select min(time) from 表))),max(time))

where time is null
参考技术A --按条件,实质是从第一条记录01:01:06,接着的数据是第一条记录的时间加id那么多秒
--不知道time是什么类型,以下语句假设是varchar类型,由于函数DATEADD需要完整日期格式,为了拼凑成完整的日期格式,所以随便加了个日期2010-1-1上去,但并不影响结果

update 表
set time = convert(varchar(8),DATEADD(second,id,'2010-1-1 01:01:06'),114)
where time isnull
参考技术B 我假设你的表是test, 表中有两个column,id 和time

BEGIN
FOR i IN 6..13
LOOP
UPDATE test SET time='01:01:'||To_Char(i,'00') WHERE id =i-5;
END LOOP;

END;
参考技术C 写个循环更新吧。

SQL server怎么在更新数据的时候让字段自动加1,

比如用户登录 登录成功后自动将登录次数加1

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、然后在该界面中,显示要更新的数据表myUserNum 。

3、之后在该界面中,点击左上角“新建查询”选项。

4、接着在该界面中,输入SQL语句“update myUserNum set userNum = userNum +1”。

5、然后在该界面中,显示修改成功。

6、最后在该界面中,显示更新后的数据表myUserNum。

参考技术A 判断用户名和密码后,修改用户表。
update [用户表] set loginCount = loginCount+1 where userID='用户名'本回答被提问者采纳

以上是关于怎么在SQL里逐行修改数据的主要内容,如果未能解决你的问题,请参考以下文章

mysql中怎样才能查看历史而且逐行比较?请高手赐教!

在java中怎么修改sql里的数据啊??已经连接好数据库了

sqlserver 怎么 修改数据

SQL数据库中一个表突然不能修改和插入,怎么解决?

SQL Server数据库里面怎么修改数据库的名字?

sql修改某一行数据