3.4w+
社区成员
如下表:
单号 日期
001 23-01-01
002 23-02-01
001
002
求SQL语句:将最后两条记录日期为空的单号的日期更改为已存在单号的日期,如 日期空的001单号的日期更改为23-01-01,日期空的002单号的日期更改为23-02-01,不胜感激!
你这个操作有点迷啊。
一般来说应该删除这些日期为空的数据行才对
非常感谢版主!
没人回复是因为太难了吗?
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
*/
没人回复是因为太简单了吗?
各位大侠留步,回复一下呗!
怎么没人回复啊?