【发布时间】:2017-05-24 18:33:43
【问题描述】:
我有一个列,我需要在该列中继续查找与该列中的原始记录关联的最后一条记录值。
select rec1, val1 from table1:
rec1 val1
a1 t1
t1 t2
t2 null
a2 t7
t7 null
此表中基本上有 2 条原始记录 (a1, a2)。我需要在我的 sql 查询中将 t2 与 a1 相关联,因为链接基于 val1 列(a1 -> t1 -> t2),直到 val1 为空。记录 a2 仅链接到 t7,因为 t7 (a2 -> t7) 没有进一步的链接。
我希望有一种“简单”的方法来实现这一点。我已经尝试过,但无法取得太大进展。 谢谢
【问题讨论】:
-
这不是用游标解决的。相反,您需要递归 CTE。
-
是的,是的。并且标题也需要编辑。
-
我改了标题。您能否发布一个示例查询?
-
你试过谷歌搜索
Recursive CTE吗? Stack Overflow 不是免费的代码编写服务 -
WITH RECURSIVE t(n) AS ( VALUES (1) UNION ALL SELECT n+1 FROM t WHERE n < 100 ) SELECT sum(n) FROM t;
标签: sql sql-server loops