gpt4 book ai didi

sql - 可以修改此查询以包含偏移量吗?

转载 作者:行者123 更新时间:2023-12-03 09:10:26 25 4
gpt4 key购买 nike

当前使用带有一些基本 VBA 的 Excel 表单在最终用户和 SQL 表之间传递数据。不过,我遇到了一个问题,用户可能希望跳过正在呈现的记录,并获取下一个记录。因为我(当前)有 3 个用户共享数据,所以我需要确保 A 和 B 不会相互冲突。我通过在用户 A 收到数据后立即将状态字段更新为“锁定”来实现此目的。

无论如何,我一直在试图弄清楚 OFFSET 是如何工作的,但运气不太好。

声明的删节版本:

Select top 1 ID,Query,Status from mydb.mytable where status = 'NEW' order by Priority desc 

这为我提供了新状态下的最高优先级记录。运行第二条语句将“NEW”更新为“LOCKED”

但如果用户无法处理该记录,她就需要另一条记录。我认为像下面这样的东西会起作用,但我就是无法让它起作用。

Select top 1 ID,Query,Status from mydb.mytable where status = 'NEW' order by Priority desc offset 5;

感谢您的帮助!

最佳答案

根据MSDN :

TOP cannot be combined with OFFSET and FETCH in the same query expression (in the same query scope).

假设您使用的是 SQL Server 2012 或更高版本,您可以这样做。

SELECT ID, Query, Status FROM mydb.mytable 
WHERE status = 'NEW'
ORDER BY Priority DESC
OFFSET 5 ROWS
FETCH NEXT 1 ROW ONLY;

FETCH NEXT 1 ROW ONLY 将为您提供偏移后的第一行,这相当于您通过执行 TOP 1 获得的结果。

关于sql - 可以修改此查询以包含偏移量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42987322/

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