關于SQL查詢重復語句
經過試驗,下面的方法能滿足你的要求。
Sql Server里面如果沒有設定主鍵而刪除重復數據很麻煩:
一:保留重復記錄中的一條記錄,其他全部刪除。
--1:建立臨時表,把不重復的數據轉存
select distinct * into #Tmp from 表名;
--2:刪除原表數據
truncate table 表名;
--3:將數據導回
insert into 表名 select * from #Tmp;
--4:刪除臨時表
drop table #Tmp;
******************
如果是oracle的話,把 rowid 查出來,按照rowid刪除就可以了。
select rowid,表名.* from 表名;
delete from 表名 where rowid != '剛才查詢出的某個值'
commit;
******************
補充:如果你的表中只有這兩個字段的話,用上面的方法就能達到你的要求。
如果不是,用查詢分析器打開這個標,選重要刪除的數據,右鍵刪除即可,比sql來的簡單的多。
---
以上,希望對你有所幫助。
sql語句去重
sql語句通過DISTINCT關鍵字去重, 用于返回唯一不同的值。DISTINCT關鍵字需要搭配SELECT 語句使用,語法為SELECT DISTINCT 列名稱 FROM 表名稱。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的項就必須出現在選擇列表中,否則會出現錯誤。
擴展資料:
distinct這個關鍵字用來過濾掉多余的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對于一個數據量非常大的站來說,無疑是會直接影響到效率的。
distinct必須放在開頭,distinct語句中select顯示的字段只能是distinct指定的字段,其他字段是不可能出現的。