gpt4 book ai didi

SQL选择直接删除

转载 作者:行者123 更新时间:2023-12-02 08:22:42 27 4
gpt4 key购买 nike

我需要选择记录,检查我的选择标准并增强它直到我得到我需要的所有记录,然后删除(或以其他方式更改)那些。让我们暂时删除。

select <fields> from <database> where <condition>

(检查、调整条件)

delete from <database> where (<same condition>)

这不是一种更简单的方法,例如管道,可以将选定的记录直接插入删除语句吗?我使用了将所有记录编号选择到临时数据库中的技术,但是没有直接的方法吗?

我搜索了 Stack Overflow,发现了几个问题,人们问如何将 select 语句转换为 delete 语句,这不是我想要的。我的想法是这样的:

select ... from ... where ... | delete

或者像这样的解决方法......

/* create a list of records to delete */
select ... from ... where ... into @temp

/* shove the list into delete */
delete @temp

SQL 标准是否支持我想要的机制,或者是否有特定于平台的方法(MS SQL Server)?

最佳答案

您可以使用 Common Table Expression ,像这样:

;WITH CTE AS (
select <fields>
from <table>
where <condition>
)
DELETE FROM CTE

此语句将删除您的查询返回的所有记录

您可以选择添加应用于 CTE 查询返回的内联表的额外条件,例如:

;WITH CTE AS (
select <fields>
from <table>
where <condition>
)
DELETE FROM CTE
WHERE <more conditions on CTE fields>

关于SQL选择直接删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35458604/

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