gpt4 book ai didi

sql-server - Sql Server DELETE 和WITH 子句

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

我需要构建一个 SQL 语句来从某个表中删除与另一个 select 语句匹配的记录。

在 Teradata 中我们使用

delete from table1 
where (col1, col2) in (
select col1,col2
from table2
)

而在 SQL Server 中,WHERE..IN 子句中不允许有超过 1 列。我想我可以使用WITH子句:

with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2

如何使用WITH..DELETE子句?还有别的办法吗?

最佳答案

这应该可以做到:

DELETE Table1
from Table1 t1
inner join tempTable t2
on t2.Col1 = t1.Col1
and t2.Col2 = t1.Col2

关于sql-server - Sql Server DELETE 和WITH 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177810/

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