SQL語句刪除2條重復(fù)數(shù)據(jù)一條保留一條
更新時間:2012年06月29日 14:47:26 作者:
SQL語句2條完全一樣的數(shù)據(jù)刪除一條保留一條,SQL Server 2005 Express 下測試通過, 僅供參考
-- 任意的測試表
CREATE TABLE test_delete(
name varchar(10),
value INT
);
go
-- 張三100 與 王五80 是有重復(fù)的
INSERT INTO test_delete
SELECT '張三', 100
UNION ALL SELECT '張三', 100
UNION ALL SELECT '李四', 80
UNION ALL SELECT '王五', 80
UNION ALL SELECT '王五', 80
UNION ALL SELECT '趙六', 90
UNION ALL SELECT '趙六', 70
go
-- 測試檢索數(shù)據(jù)
SELECT
ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,
name,
value
FROM
test_delete
no name value
-------------------- ---------- -----------
1 李四 80
1 王五 80
2 王五 80
1 張三 100
2 張三 100
1 趙六 70
1 趙六 90
--創(chuàng)建視圖
CREATE VIEW tmp_view AS
SELECT
ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,
name,
value
FROM
test_delete
--刪除數(shù)據(jù)
1> DELETE FROM tmp_view WHERE no != 1
2> go
(2 行受影響)
-- 核對結(jié)果
1> www.dbjr.com.cn
2> select * from test_delete;
3> go
name value
---------- -----------
張三 100
李四 80
王五 80
趙六 90
趙六 70
(5 行受影響)
作者 tearsmo
復(fù)制代碼 代碼如下:
CREATE TABLE test_delete(
name varchar(10),
value INT
);
go
-- 張三100 與 王五80 是有重復(fù)的
INSERT INTO test_delete
SELECT '張三', 100
UNION ALL SELECT '張三', 100
UNION ALL SELECT '李四', 80
UNION ALL SELECT '王五', 80
UNION ALL SELECT '王五', 80
UNION ALL SELECT '趙六', 90
UNION ALL SELECT '趙六', 70
go
-- 測試檢索數(shù)據(jù)
SELECT
ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,
name,
value
FROM
test_delete
no name value
-------------------- ---------- -----------
1 李四 80
1 王五 80
2 王五 80
1 張三 100
2 張三 100
1 趙六 70
1 趙六 90
--創(chuàng)建視圖
復(fù)制代碼 代碼如下:
CREATE VIEW tmp_view AS
SELECT
ROW_NUMBER() OVER (PARTITION BY name, value ORDER BY (SELECT 1) ) AS no,
name,
value
FROM
test_delete
--刪除數(shù)據(jù)
1> DELETE FROM tmp_view WHERE no != 1
2> go
(2 行受影響)
-- 核對結(jié)果
1> www.dbjr.com.cn
2> select * from test_delete;
3> go
name value
---------- -----------
張三 100
李四 80
王五 80
趙六 90
趙六 70
(5 行受影響)
作者 tearsmo
相關(guān)文章
sql server使用公用表表達式CTE通過遞歸方式編寫通用函數(shù)自動生成連續(xù)數(shù)字和日期
CTE是在內(nèi)存中準(zhǔn)備好數(shù)據(jù),而不是每次一條往返服務(wù)器和客戶端一次。如果需要再插入到臨時表的話就是全部數(shù)據(jù)一次性插入。 這篇文章主要介紹了sql server使用公用表表達式CTE通過遞歸方式編寫通用函數(shù)自動生成連續(xù)數(shù)字和日期 ,需要的朋友可以參考下2019-07-07sqlserver只有MDF文件恢復(fù)數(shù)據(jù)庫的方法
因為只有mdf文件,想恢復(fù)數(shù)據(jù)庫,大家可以用下面的代碼先測試2008-10-10數(shù)據(jù)庫SQL中having和where的用法區(qū)別
這篇文章主要介紹了數(shù)據(jù)庫SQL中having和where的用法區(qū)別的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11SQL Server 中調(diào)整自增字段的當(dāng)前初始值
SQL Server 中調(diào)整自增字段的當(dāng)前初始值...2007-01-01SQLServer2005創(chuàng)建定時作業(yè)任務(wù)
這篇文章主要為大家介紹了SQLServer2005創(chuàng)建定時作業(yè)任務(wù)的詳細過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12sql server 2016不能全部用到CPU的邏輯核心數(shù)的問題
服務(wù)器總共CPU核心有72核,但sql 只能用到40核心,想信也有很多人遇到這問題,那么今天這節(jié)就先說說這問題是怎么出現(xiàn)的2023-05-05數(shù)據(jù)庫備份 SQLServer的備份和災(zāi)難恢復(fù)
數(shù)據(jù)處理在現(xiàn)代企業(yè)運營中變得越來越重要,越來越關(guān)鍵,甚至?xí)蔀槠髽I(yè)發(fā)展的一項瓶頸. 數(shù)據(jù)保護的重要性也不言而喻. 如果一個企業(yè)沒有很好的數(shù)據(jù)保護方案或策略的話,一旦發(fā)生重要數(shù)據(jù)丟失,后果將會是災(zāi)難性的,伴隨著會有經(jīng)濟利益方面的損失.2010-07-07