如何解决提取记录历史
您可以使用递归公用表表达式(CTE)解决此问题:
DECLARE
@RequestID int = 6;
WITH
ReqCTE AS
(
SELECT
RequestID,
OldRequestID
FROM
Requests
WHERE
RequestID = @RequestID
UNION ALL SELECT
R.RequestID,
R.OldRequestID
FROM
ReqCTE C
INNER JOIN Requests R
ON R.RequestID = C.OldRequestID
)
SELECT
*
FROM
ReqCTE;
解决方法
我的桌子上有两列RequestId
和OldRequestId
。
-
如果我通过
RequestId
,它将检索我特定的记录。 -
如果
OldRequestId
检索到的记录中的s不为null,则它也应携带旧的请求数据。 -
它应该一直持续到直到
OldRequestId
为null。
有人可以帮助我为此要求编写最佳的SQL查询吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。