【发布时间】:2020-11-20 15:04:07
【问题描述】:
我已获得数据来构建具有产品部件号形式的顺序数据的应用程序:"000000", "000001", "000002", "000010", "000011" ...。以前的应用程序是一个旧的 MS Access 数据库,在零件编号生成器中没有任何间隙填充功能,因此 "000002" 和 "000010" 之间的间隙(是的,它们也是字符串,但我可以使用它。 ..)。
我们可以继续根据最后一个值递增并忽略空白,但是,为了尝试将所有可用的数字用于我们的命名方案,我们希望能够填补空白。我们的命名方案使用前两位数字来描述“产品系列”,这样:[00]0000 将是与 [02]0000 不同的系列。
我可以使用以下方法找到起始值和结束值:
let query = `
LET first = (
MIN(
FOR part in part_search
SEARCH STARTS_WITH(part.PartNumber, @family)
RETURN part.PartNumber
)
)
LET last = (
MAX(
FOR part in part_search
SEARCH STARTS_WITH(part.PartNumber, @family)
RETURN part.PartNumber
)
)
RETURN { first, last }
`
上面的例子返回:{first: "000000", last: "000915"}
使用 ArangoDB 和 AQL,我如何才能找到这些差距?我找到了一些 SQL 示例,但我觉得 AQL 的功能有点限制。
提前致谢!
【问题讨论】: