gpt4 book ai didi

sql-server - SQL 服务器 2008 R2 : selecting record which are present in another table

转载 作者:行者123 更新时间:2023-12-03 19:11:34 24 4
gpt4 key购买 nike

我有一个主表tbl_user 和一个临时表tbl_user_temptbl_user 包含其中一些重复的记录,因此我已使用此查询将这些记录移动到临时表:

INSERT INTO tbl_user_temp
SELECT
*
FROM
tbl_user
GROUP BY
fullname, username, password
HAVING
COUNT(*) > 1

现在我想做的是从 tbl_user 中删除 tbl_user_temp 中的记录

我正在使用 SQL Server 2008 R2。

最佳答案

我猜您想从主表中删除所有重复记录。此解决方案允许您从每组重复项中删除一行(而不是一次只处理一个重复项 block ):

;WITH x AS 
(
SELECT username, rn = ROW_NUMBER() OVER (PARTITION BY
fullname,username,password
ORDER BY username)
FROM dbo.tbl_user
)
DELETE x WHERE rn > 1;

Row_Number()将生成分区明智的行号。对于每个相同的组,行号将在那里。在 DELETE x WHERE rn > 1; 中,它将检查行号是否大于 1,它将删除该行。如果您只是使用 Select 代替 delete 查询,您将看到它是如何生成行号的。

关于sql-server - SQL 服务器 2008 R2 : selecting record which are present in another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735719/

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