gpt4 book ai didi

sql-server - SQL Server - 检查是否存在具有特定值的记录

转载 作者:行者123 更新时间:2023-12-04 06:04:00 24 4
gpt4 key购买 nike

我在 SQL Server 中有很简单的问题:

用户可以有 12 个项目,在表中用 ID 和 Slot(槽位是 0-11)表示。捡起物品后,应将其放入最低的空槽中。

我正在使用以下脚本,但它在第一个使用的插槽之后返回第一个空插槽:

SELECT coalesce ((SELECT MIN(Slot) + 1 FROM Items N1 WHERE N1.name = 'abc'
AND NOT EXISTS(SELECT * FROM Items N2 WHERE N2.name = 'abc'
AND N2.Slot = N1.Slot + 1) AND Slot<11),0)

我需要脚本来找到尚不存在的最低插槽。希望这是有道理的:)

一个例子 - 如果表包含以下记录,则不起作用,返回 5(应返回 0):
ID  Slot Name
10 3 abc
11 4 abc

有了这些数据,它确实正确返回了 2。
ID  Slot Name
10 0 abc
11 1 abc

脚本应返回 1,因为这是第一个小于 11 的未使用数字(插槽)。

最佳答案

  SELECT coalesce (
(SELECT MIN(N1.Slot) + 1
FROM Items N1
LEFT OUTER JOIN Items N2 ON N1.Slot+1 = N2.Slot
WHERE N1.name = 'abc'
AND N2.Slot IS NULL
AND N1.Slot < 11)
,0)

关于sql-server - SQL Server - 检查是否存在具有特定值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com