sql - SQL递归获取下一个算法无法正常工作
问题描述
试图在存储过程中创建一个获取下一个递归算法。然而,我遇到了一些困难。条件部分有时可能会选择多个结果 - 如果是这种情况,我希望它继续寻找没有任何结果的案例,以便选择我可用的下一个号码。我尝试使用前 1 个,存在子查询等 - 其中大多数不能在递归内部使用。
以下是用于说明目的的示例代码:
declare @inputAccID int,
@accDtlID int
WITH cte_table AS (
SELECT
number ,
accc_id as id
FROM
Account
WHERE acc_id = @inputAccID
UNION ALL
SELECT
cte.number +1
FROM cte_table cte
join
AccountDetails ad on cte.id = a.acc_id
join Account a on a.acc_id = ad.acc_id
Where ad.accDtl_id != @accDtlID
and ad.number = ad.number
)
SELECT * FROM cte_table;
Options(maxrecursion 0)
基本上,当数据库中没有具有相同编号的其他记录时,我想获得下一个编号,因此它将在数据库中是唯一的。然而,目前在数据库中存在条件返回多条记录的情况 - 似乎是坏数据。这打破了递归
任何技术只能检查它是否存在记录?
解决方案
推荐阅读
- javascript - 如何使用 spawn 运行和停止子服务器 node.js?
- customization - Odoo 11 CE 中的自定义活动(待办事项)
- javascript - 动态禁用选择字段条件是如果我们更改另一个选择字段
- c# - 如何在不压缩的情况下将文件和文件夹捆绑到一个单元中?
- python - 当一个数据框为空时,迭代两个熊猫数据框错误
- c++ - 血管的质心opencv
- node.js - 如何使用 Node JS 在 Google 分析中添加交易(电子商务)?
- javascript - 无法向右水平滚动更多(仅在 iOS 中)
- android - 如何阻止 Chrome 后台更新杀死我的应用程序?
- buefy - 在 Buefy 表上添加 id 属性