我最近了解了sql中的LAG和LEAD函数...据我所知,这些函数创建了自定义列以显示结果,但结果将不会保存。
您能帮我如何将LAG
结果保存到数据表sql数据库中吗?...
答案 0 :(得分:1)
一个例子。它将使用先前的值更新prev
字段:
DECLARE @t TABLE
(
id int,
val int,
prev int
);
INSERT INTO @t VALUES
(1, 100, NULL),
(2, 200, NULL),
(3, 300, NULL),
(4, 400, NULL),
(5, 500, NULL),
(6, 600, NULL);
UPDATE @t
SET prev = z.xprev
FROM
(
SELECT *,
LAG(val, 1, NULL) OVER (ORDER BY id) xprev
FROM @t
) z
INNER JOIN @t w ON w.id = z.id;