gpt4 book ai didi

sql-server - 如何使用内连接删除前(N)行?

转载 作者:行者123 更新时间:2023-12-03 02:30:39 27 4
gpt4 key购买 nike

我正在尝试使用以下查询从两个表中删除几行

Delete top(3) ss 
from stage.SubmitItemData ss
INNER JOIN stage.SubmitItems s (NOLOCK) on ss.SubmitItemId = s.SubmitItemId
where s.AgencyCode = 'NC0860000' and s.StatusId = 8

令我困惑的是,如果我删除参数 s.AgencyCodes.StatusId 查询执行时不会出现任何问题。但是,如果我添加这些参数,(0) 行会受到影响。

我想做的就是控制在任何给定时间删除的记录数量。 top(n) 不是最好的方法吗,因为它看起来好像需要排序才能工作?为这种类型的删除创建一个循环会更好吗?

感谢您的任何建议。

最佳答案

DELETE TOP (3)
FROM stage.SubmitItemData
WHERE
EXISTS (SELECT 1
FROM stage.SubmitItems
WHERE SubmitItemId = SubmitItemData.SubmitItemId
AND AgencyCode = 'NC0860000'
AND StatusId = 8)

或者你可以做这样的事情......

DELETE TOP(3) FROM ss 
FROM stage.SubmitItemData ss
INNER JOIN stage.SubmitItems s WITH (NOLOCK)
ON ss.SubmitItemId = s.SubmitItemId
where s.AgencyCode = 'NC0860000' and s.StatusId = 8

关于sql-server - 如何使用内连接删除前(N)行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052979/

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