Sql Server里刪除數(shù)據(jù)表中重復(fù)記錄的例子
[項(xiàng)目]
數(shù)據(jù)庫中users表,包含u_name,u_pwd兩個(gè)字段,其中u_name存在重復(fù)項(xiàng),現(xiàn)在要實(shí)現(xiàn)把重復(fù)的項(xiàng)刪除!
[分析]
1、生成一張臨時(shí)表new_users,表結(jié)構(gòu)與users表一樣;
2、對users表按id做一個(gè)循環(huán),每從users表中讀出一個(gè)條記錄,判斷new_users中是否存在有相同的u_name,如果沒有,則把它插入新表;如果已經(jīng)有了相同的項(xiàng),則忽略此條記錄;
3、把users表改為其它的名稱,把new_users表改名為users,實(shí)現(xiàn)我們的需要。
[程序]
declare @id int,@u_name varchar(50),@u_pwd varchar(50)
set @id=1
while @id<1000
begin
if exists (select u_name from users where u_id=@id)
begin
select @u_name=u_name,@u_pwd=u_pwd from users where u_id=@id --獲取源數(shù)據(jù)
if not exists (select u_name from new_users where u_name=@u_name) -- 判斷是否有重復(fù)的U-name項(xiàng)
begin
insert into new_users(u_name,u_pwd) values(@u_name,@u_pwd)
end
end
set @id=@id+1
end
select * from new_users
[方法二]
假設(shè)Users表中有相同的name項(xiàng),id為主鍵標(biāo)識(shí)字段?,F(xiàn)在要求去掉Users中重復(fù)的name項(xiàng)。
1、把不重復(fù)的ID保存在一個(gè)tmp1表里面。
2、從Users表中選取tmp1表中的id項(xiàng),將相應(yīng)id的數(shù)據(jù)寫入表tmp2
3、把Users、tmp1兩張表Drop掉
drop table tmp1
4、把tmp2表改名為User表
[注]如果沒有主鍵標(biāo)識(shí)id,可以增加一個(gè)標(biāo)識(shí)字段,方法如下:
[情況三]
假設(shè)有一個(gè)User表,id為主鍵標(biāo)識(shí)字段,但有一些完全重復(fù)的項(xiàng)?,F(xiàn)在要求去掉Users中這些完全重復(fù)的項(xiàng),只保留一條。
1、把不重復(fù)的數(shù)據(jù)保存在tmp1表中
2、把Users表刪除
3、把tmp1表中的數(shù)據(jù)導(dǎo)入到Users表
4、把tmp1表刪除
相關(guān)文章
Microsoft?SQL?Server錯(cuò)誤:?233的原因及解決辦法
這篇文章主要給大家介紹了關(guān)于Microsoft?SQL?Server錯(cuò)誤:?233的原因及解決辦法,這個(gè)錯(cuò)誤代碼是指Microsoft SQL Server遇到了一個(gè)數(shù)據(jù)庫連接失敗的問題,可能是由于數(shù)據(jù)庫連接字符串不正確、數(shù)據(jù)庫服務(wù)未啟動(dòng)、網(wǎng)絡(luò)連接故障等原因,需要的朋友可以參考下2024-06-06
SQL Server Alwayson添加監(jiān)聽器失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了SQL Server Alwayson添加監(jiān)聽器失敗的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
將備份數(shù)據(jù)還原到數(shù)據(jù)庫的步驟
如何將備份數(shù)據(jù)庫.bak導(dǎo)入到新的空數(shù)據(jù)庫或已有數(shù)據(jù)中?做筆記 分享給大家希望有幫助2009-10-10
Sql Server中Cross Apply關(guān)鍵字的使用 詳解
在 SQL Server 中,Cross Apply 關(guān)鍵字主要用于從一個(gè)表中獲取數(shù)據(jù),并對每一行數(shù)據(jù)應(yīng)用一個(gè)表值函數(shù),然后返回函數(shù)的結(jié)果,這篇文章主要介紹了Sql Server中Cross Apply關(guān)鍵字的使用 ,需要的朋友可以參考下2023-11-11
sqlserver 數(shù)據(jù)庫連接字符串中的可選項(xiàng)收集
sqlserver 數(shù)據(jù)庫連接字符串中的可選項(xiàng)收集,需要的朋友可以參考下。2011-10-10
SQL?Server數(shù)據(jù)庫的三種創(chuàng)建方法匯總
新建數(shù)據(jù)庫是我們開始數(shù)據(jù)庫學(xué)習(xí)的重要一步,下面這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫的三種創(chuàng)建方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
SQL Server中row_number分頁查詢的用法詳解
這篇文章主要介紹了SQL Server中row_number的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

