求SQL语句:将日期为空的单号的日期更改为已存在单号的日期

tansx 2023-03-10 18:31:00

如下表:

单号      日期   
001     23-01-01
002     23-02-01
001   
002

求SQL语句:将最后两条记录日期为空的单号的日期更改为已存在单号的日期,如 日期空的001单号的日期更改为23-01-01,日期空的002单号的日期更改为23-02-01,不胜感激!

...全文
80 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 6天前
  • 打赏
  • 举报
回复

你这个操作有点迷啊。
一般来说应该删除这些日期为空的数据行才对

tansx 9天前
  • 打赏
  • 举报
回复

非常感谢版主!

tansx 9天前
  • 打赏
  • 举报
回复

没人回复是因为太难了吗?

吉普赛的歌 版主 9天前
  • 打赏
  • 举报
回复

USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL 
    DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[单号] NVARCHAR(MAX)
,[日期] NVARCHAR(MAX)    
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'001',N'23-01-01')
INSERT INTO dbo.[t] VALUES(N'002',N'23-02-01')
INSERT INTO dbo.[t] VALUES(N'001',NULL)
INSERT INTO dbo.[t] VALUES(N'002',NULL)

----------- 以上为测试表及测试数据 -----------

;with cte as(
    select 单号,max(日期) as 日期
    from t 
    where 日期 is not null
    group by 单号
)
update a
set a.日期=b.日期
from t as a inner join cte as b
    on a.单号=b.单号
where a.日期 is null

select * from t
/*
单号    日期
001        23-01-01
002        23-02-01
001       23-01-01
002      23-02-01
*/
tansx 9天前
  • 打赏
  • 举报
回复

没人回复是因为太简单了吗?

tansx 03-10
  • 打赏
  • 举报
回复

各位大侠留步,回复一下呗!

tansx 03-10
  • 打赏
  • 举报
回复

怎么没人回复啊?

相关推荐
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2023-03-10 18:31
社区公告
暂无公告