SQL Server中Update的用法

作者:佚名 来源:zxbc.cn 时间:2008-12-29 13:57:00 

在表中有两个字段:id_no (varchar) , in_date (datetime) ,把in_date相同的记录的in_date依次累加1秒, 使in_date没有相同的记录。

以下为原始的数据:

id_no in_date

5791 2003-9-1 14:42:02

5792 2003-9-1 14:42:02

5794 2003-9-1 14:42:02

5795 2003-9-1 14:42:03

5796 2003-9-1 14:42:03

5797 2003-9-1 14:42:03

5831 2003-9-1 14:42:04

5832 2003-9-1 14:42:14

5833 2003-9-1 14:42:14

结果为:

id_no in_date

5791 2003-9-1 14:42:02

5792 2003-9-1 14:42:03

5794 2003-9-1 14:42:04

5795 2003-9-1 14:42:05

5796 2003-9-1 14:42:06

5797 2003-9-1 14:42:07

5831 2003-9-1 14:42:08

5832 2003-9-1 14:42:14

5833 2003-9-1 14:42:15

处理的方法:

--建立测试环境

create table a(id_no varchar(8),in_date datetime)

go

insert into a select \'5791\',\'2003-9-1 14:42:02\'

union all select \'5792\',\'2003-9-1 14:42:02\'

union all select \'5794\',\'2003-9-1 14:42:02\'

union all select \'5795\',\'2003-9-1 14:42:03\'

union all select \'5796\',\'2003-9-1 14:42:03\'

union all select \'5797\',\'2003-9-1 14:42:03\'

union all select \'5831\',\'2003-9-1 14:42:04\'

union all select \'5832\',\'2003-9-1 14:42:04\'

union all select \'5833\',\'2003-9-1 14:42:04\'

union all select \'5734\',\'2003-9-1 14:42:02\'

union all select \'6792\',\'2003-9-1 14:42:22\'

union all select \'6794\',\'2003-9-1 14:42:22\'

union all select \'6795\',\'2003-9-1 14:42:23\'

union all select \'6796\',\'2003-9-1 14:42:23\'

union all select \'6797\',\'2003-9-1 14:42:23\'

union all select \'6831\',\'2003-9-1 14:42:34\'

union all select \'6832\',\'2003-9-1 14:42:34\'

union all select \'6833\',\'2003-9-1 14:42:54\'

union all select \'6734\',\'2003-9-1 14:42:22\'

go

--生成临时表,按照in_date排序

select * into # from a order by in_date

--相同的时间,加一秒。加完了不带重复的

declare @date1 datetime,@date2 datetime,@date datetime

update #

set @date=case when @date1=in_date or @date2>=in_date

then dateadd(s,1,@date2) else in_date end,

@date1=in_date,

@date2=@date,

in_date=@date

--更新到基本表中去

update a set a.in_date=b.in_date from

a a join # b on a.id_no=b.id_no

select * from a

drop table #,a

标签:
0
投稿

猜你喜欢

  • python 字典修改键(key)的几种方法

    2021-01-05 16:58:00
  • 微信小程序实现简单的select下拉框

    2024-04-17 10:23:52
  • Python的ORM框架SQLAlchemy入门教程

    2023-01-17 03:41:05
  • 一文带你了解Go语言中的指针和结构体

    2024-04-25 15:26:20
  • php常见的页面跳转方法汇总

    2024-05-28 15:38:15
  • python目标检测给图画框,bbox画到图上并保存案例

    2023-03-07 07:47:52
  • VUE中的export default和export使用方法解析

    2024-06-05 09:14:22
  • 使用实现pandas读取csv文件指定的前几行

    2021-06-28 12:05:26
  • 网页效果图设计之色彩索引

    2008-03-23 13:53:00
  • MySQL存储数据乱码的问题解析

    2024-01-15 18:31:33
  • 在Python中处理日期和时间的基本知识点整理汇总

    2021-05-13 07:12:14
  • Python实现的维尼吉亚密码算法示例

    2023-08-25 10:19:25
  • 详解javascript遍历方式

    2023-10-14 16:44:48
  • python优雅实现代码与敏感信息分离的方法

    2022-05-07 18:21:14
  • windows下mysql 8.0.13 解压版安装图文教程

    2024-01-17 04:03:56
  • python Django模板的使用方法

    2021-06-09 15:29:14
  • django框架F&Q 聚合与分组操作示例

    2021-05-21 02:13:56
  • 如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)

    2023-07-02 17:08:10
  • PyTorch 随机数生成占用 CPU 过高的解决方法

    2021-09-23 09:12:31
  • python 随机森林算法及其优化详解

    2023-03-30 20:20:45
  • asp之家 网络编程 m.aspxhome.com