更新最新一条数据的SQL语句写法怎么写,将C字段下的null(空值)更成‘已更新’或者别的东西请随便。
只更新最新一条
数据如下:
CITY DATE C
武汉 2009-9-21 13:45:00 32
长沙 2009-9-21 13:46:00 null
长沙 2009-9-21 13:47:00 31
长沙 2009-9-21 13:48:00 null
上海 2009-9-21 13:49:00 29
上海 2009-9-21 13:50:00 38
武汉 2009-9-21 13:51:00 31
上海 2009-9-21 13:52:00 null
武汉 2009-9-21 13:53:00 31 我要结果是:
CITY DATE C
武汉 2009-9-21 13:45:00 32
长沙 2009-9-21 13:46:00 null
长沙 2009-9-21 13:47:00 31
长沙 2009-9-21 13:48:00 已更新
上海 2009-9-21 13:49:00 29
上海 2009-9-21 13:50:00 38
武汉 2009-9-21 13:51:00 31
上海 2009-9-21 13:52:00 已更新
武汉 2009-9-21 13:53:00 31
只更新最新一条
数据如下:
CITY DATE C
武汉 2009-9-21 13:45:00 32
长沙 2009-9-21 13:46:00 null
长沙 2009-9-21 13:47:00 31
长沙 2009-9-21 13:48:00 null
上海 2009-9-21 13:49:00 29
上海 2009-9-21 13:50:00 38
武汉 2009-9-21 13:51:00 31
上海 2009-9-21 13:52:00 null
武汉 2009-9-21 13:53:00 31 我要结果是:
CITY DATE C
武汉 2009-9-21 13:45:00 32
长沙 2009-9-21 13:46:00 null
长沙 2009-9-21 13:47:00 31
长沙 2009-9-21 13:48:00 已更新
上海 2009-9-21 13:49:00 29
上海 2009-9-21 13:50:00 38
武汉 2009-9-21 13:51:00 31
上海 2009-9-21 13:52:00 已更新
武汉 2009-9-21 13:53:00 31
解决方案 »
- 初接asp.net很迷茫 不知道怎么学 求救各位大神
- 汉字传值乱码问题
- 求一个能绑定分类查看的控件。
- 求一数组排列算法
- asp.net地址栏中显示同一个url地址怎么做啊
- 请问在VS2005里面如何实现如下的权限控制功能!
- &&&&&&&&有关中文双引号输入的一点问题
- |zyciis| 如何知道打开我这个页面的上一个页面的名称叫什么 注意我这里是框架用 document.referrer 没用
- .net 2.0 和 .net4.0 预编译的区别
- Help! Control '_ctl0__ctl0' of type 'Button' must be placed inside a form tag with runat=server
- 如何在time控件刷新的时候保持DIV滚动条的位置
- vs2008如何在Mac OS操作系统上创建zip文件?
declare @t table ([CITY] varchar(4),[DATE] datetime,[C] varchar(20))
insert into @t
select '武汉','2009-9-21 13:45:00',32 union all
select '长沙','2009-9-21 13:46:00',null union all
select '长沙','2009-9-21 13:47:00',31 union all
select '长沙','2009-9-21 13:48:00',null union all
select '上海','2009-9-21 13:49:00',29 union all
select '上海','2009-9-21 13:50:00',38 union all
select '武汉','2009-9-21 13:51:00',31 union all
select '上海','2009-9-21 13:52:00',null union all
select '武汉','2009-9-21 13:53:00',31select * from @t
--Code
update a SET c='已更新' FROM @t a WHERE NOT EXISTS(SELECT 1 FROM @t WHERE city=a.CITY AND [date]>a.[date]) AND c IS NULLselect * from @t --Result
/*
CITY DATE C
---- ----------------------- --------------------
武汉 2009-09-21 13:45:00.000 32
长沙 2009-09-21 13:46:00.000 NULL
长沙 2009-09-21 13:47:00.000 31
长沙 2009-09-21 13:48:00.000 已更新
上海 2009-09-21 13:49:00.000 29
上海 2009-09-21 13:50:00.000 38
武汉 2009-09-21 13:51:00.000 31
上海 2009-09-21 13:52:00.000 已更新
武汉 2009-09-21 13:53:00.000 31
*/
update tb set C = xxx
where id in
(select top 1 id from tb
where C = null
order by DATE )
set t1.c='已更新'
from aaa t1
where t1.c IS NULL and t1.DATE = (select max(DATE) from aaa where CITY=t1.CITY)
a
inner join
(select max(Id/*或者没有主键即用时间*/) as id,city from a group by city ) b
on a.Id=b.Id
update a set a.C='已更新' from a inner join
(select max(DATE) as DATE1,CITY from a group by CITY ) b
on a.CITY=b.CITY and a.DATE=b.DATE1MYSQL:update a inner join (select max(DATE) as DATE1,city from a group by CITY ) b on a.CITY=b.CITY and a.DATE=b.DATE1 set a.C='已更新'
update a set a.C='已更新' from a inner join
(select max(DATE) as DATE1,CITY from a group by CITY ) b
on a.CITY=b.CITY and a.DATE=b.DATE1 where b.C IS NULL