sql中刪除一個表中的重復記錄可以採用如下步驟:
1、把a_dist表的記錄用distinct去重,結果放到臨時表中。
select distinct * into #temp from a_dist;
2、把a_dist表的記錄全部刪除。
delete from a_dist;
3、把臨時表中的數據信息導進到a_dist表中,並刪除臨時表。
insert into a_distselect * from #temp;
drop table #temp;
(1)sql復製表去重擴展閱讀:
SQL (結構化查詢語言)是用於執行查詢的語法。在資料庫上執行的大部分工作都由 SQL 語句完成。SQL 語言包含用於更新、插入和刪除記錄的語法。
增刪改查指令構成了 SQL 的 DML 部分:
SELECT- 從資料庫表中獲取數據
UPDATE- 更新資料庫表中的數據
DELETE- 從資料庫表中刪除數據
INSERT INTO- 向資料庫表中插入數據
2. sql insert into select where 復製表的對於重復的數據進行過濾
insertintodbo.Person(姓名,年齡)
selectdistinct姓名,年齡
fromdbo.Student
wherenotexist(select1fromPersonwhereStudent.姓名=Person.姓名andStuent.年齡=Person.年齡)
3. sql 多表查詢如何去重
select結果集1
union
select結果集2
如果單純怕兩個結果集重復,用union連接即可,但是你一個叫銷售XX,一個叫采購XX不影響嗎?
4. SQL如何去重
1、首先創建一個臨時表,用於演示sqlserver語法中的去重關鍵字distinct的使用。本文以sqlserver資料庫為例演示,
IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 int
);
5. 用一個sql語句復製表中的所有行插入到表的後面(主鍵自增),在用一句sql語句刪除重復的行
例如表:student(id,name,sex.age),id主鍵自增
把表中紀錄復制再插入到這個表後面
insert
into
student
select
name,sex,age
from
student;
原則,除自增列外的所有列都要寫出,注意查詢欄位的順序和表對應,要不如下:
insert
into
student(sex,name,age)
select
sex,name,age
from
student;
查詢欄位和插入欄位對應
刪除重復的行
delete
from
student
where
id
in
(select
a.id
id
from
student
a,student
b
where
a.name=b.name
and
a.sex
=
b.sex
and
a.age=b.age
and
a.id<>b.id)
其中查詢語句為查出所有重復紀錄的id
select
a.id
id
from
student
a,student
b
where
a.name=b.name
and
a.sex
=
b.sex
and
a.age=b.age
and
a.id<>b.id
原則除主建外所有欄位都要相等
and
a.id<>b.id
,這個不加就會把正個表的數據算重復
因為a和b都是student表,自己和自己比當然什麼都一樣,
and
a.id<>b.id
就是和自己外的其他紀錄比
運行了,sql
server2000的資料庫,沒有問題
你什麼庫
6. sql語句如何把一個表中的數據去重創個新表
用distinct去重,然後使用如下語法創建:
create table xxx as select distinct * from xxx
這樣就在新表中保存了舊表中去重後的數據
7. 對SQL資料庫中的表去重,查詢出的的結果放在臨時表裡,如何把這個臨時表替換原先資料庫未處理過的表
去重的操作,
一般就在伺服器那裡,執行語句就好了,
別全部都取到客戶端,
然後在插入回伺服器,太花費時間了.
如果在伺服器那裡做,就是
select
distinct
*
INTO
臨時表
from
事業表;
truncate
table
事業表;
INSERT
INTO
事業表
SELECT
*
FROM
臨時表;
DROP
TABLE
臨時表;
8. sql2008如何從A資料庫復製表M到B資料庫N表中,M表與N表列一致,M表數據不覆蓋N表數據,只做去重追加數據
你好
直接insert into select
啊
這是最基礎的語法
祝你好運
9. sql語句去重
---你上面寫的
deletex
fromAx
wherex.id>(selectmin(id)fromAywherex.A1=y.A1andx.A2=y.A2);
--方法一
deletey
fromAy
wherey.idnotin
(
selectmin(id)id
fromA
groupbyA1,A2
)x
--方法二
--第一步
selectmin(id)id,A1,A2
into#aa
fromA
groupbyA1,A2
--第二步
truncatetableA
--第三步
insertintoA
select*
from#aa
droptable#aa
10. sql去重是什麼意思
SQL中,DISTINCT關鍵詞表示去掉重復的行。
SELECT DISTINCT表示查詢結果中,去掉了重復的行。在資料庫表中,數據可能會包含重復值。有時用戶希望僅僅列出不同(distinct)的值。可通過關鍵詞DISTINCT用於返回唯一不同的值。如果要從 "Company" 列中選取所有的值,使用 SELECT 語句:SELECT Company FROM Orders。
(10)sql復製表去重擴展閱讀:
如果指定了SELECT DISTINCT,那麼ORDER BY子句中的項就必須出現在選擇列表中,否則會出現錯誤。
比如SQL語句:SELECT DISTINCT Company FROM Orders order by Company ASC是可以正常執行的。
但是如果SQL語句是:SELECT DISTINCT Company FROM Orders order by Num ASC是不能正確執行的,在ASP中會提示「ORDER BY子句與(Num) DISTINCT沖突」錯誤。
SQL語句修改成:SELECT DISTINCT Company,Num FROM Orders order by Num ASC可以正常執行。