27,579
社区成员
发帖
与我相关
我的任务
分享
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
客户 NVARCHAR(10),
物料名称 NVARCHAR(10),
成交额 INT
)
GO
SET NOCOUNT ON
INSERT INTO t VALUES ('a','wl',200)
INSERT INTO t VALUES (NULL,'wl1',100)
INSERT INTO t VALUES ('b','wl3',100)
INSERT INTO t VALUES (NULL,'wl1',300)
INSERT INTO t VALUES ('a','wl5',10)
;WITH cte AS (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rid,* FROM t
),cte2 AS (
SELECT
CASE WHEN 客户 IS NULL THEN (SELECT TOP 1 客户 FROM cte AS b WHERE b.rid<a.rid AND b.客户 IS NOT NULL ORDER BY rid DESC)
ELSE 客户 END
AS 客户
,物料名称
,成交额
FROM cte AS a
)
SELECT * FROM cte2
ORDER BY 客户