tje*_*ten 3 sql sql-server-2005 chaining
SQL Server 2005中得到这个表,用来维护合并操作的历史记录:
现在我需要一个将原始 FROM_ID 作为输入的查询,并返回最后一个可用的 TO_ID。
所以例如:
所以我试图组合的查询将作为输入(在我假设的 WHERE 子句中)ID 1,并且应该给我最后一个可用的 TO_ID 作为结果,在这种情况下为 4。
我想我需要一些递归逻辑,但真的不知道如何开始。
谢谢 !
马修
使用CTE会起作用。
测试脚本
DECLARE @IDs TABLE (
FromID INTEGER
, ToID INTEGER
)
INSERT INTO @IDs
SELECT 1, 2
UNION ALL SELECT 2, 3
UNION ALL SELECT 3, 4
Run Code Online (Sandbox Code Playgroud)
SQL语句
;WITH q AS (
SELECT FromID, ToID
FROM @IDs
UNION ALL
SELECT q.FromID, u.ToID
FROM q
INNER JOIN @IDs u ON u.FromID = q.ToID
)
SELECT FromID, MAX(ToID)
FROM q
WHERE FromID = 1
GROUP BY
FromID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |