這個需要分情況。
1,你的資料庫表中有主鍵,且主鍵上面的數據為唯一值。也就是沒有重復值。
那麼你在刪除的時候,將這個唯一值作為條件進行刪除。
如:
delete
from
[表名]
where
id=1
2.所有的數據相同,那麼你只能打開數據表,手工選定其中某一條,進行刪除。
Ⅱ oracle中刪除兩條相同記錄中的一條,該怎麼操作
1.不含大欄位(clob等)的表格:
--例子表格:createtabletest(anumber,bnumber);
--方法一:通過groupby+rowid,效率低
deletefromtestt
wheret.rowidnotin(selectmin(rowid)fromtestgroupbya,b);
--方法二:通過create+rename+distinct,效率高
createtabletest_tmpas
selectdistinct*fromtestt;
droptabletest;
altertabletest_tmprenametotest;
2.含大欄位(clob等)的表格:
--例子表格:createtabletest(anumber,bclob);
--clob長度小於4000:
selectdistinctt.a,to_char(t.b)asbfromtestt;
--clob長度大於4000:
select*
fromtesta
wherea.rowid=(selectmax(b.rowid)
fromtestb
whereb.a=a.a
andnvl(dbms_lob.compare(b.b,a.b),0)=0);
Ⅲ 資料庫中某欄位存在相同數據,怎麼刪除第一條記錄;
單純用SQL語句,我們可以利用自增ID列來刪除有重復的第一條記錄,如果數據表不含自增ID列那麼就得依靠游標或應用程序端編程來解決了,因為資料庫引擎搞不清楚究竟那一條記錄是第一條。
下面是利用自增ID列刪除t1表a列有重復的第一條記錄的SQL語句示例:
delete from t1 where id in (
select min(id) from t1 group by a
having count(1)>1);
需要說明一下,刪除有重復的記錄中的第一條記錄在邏輯上並不能保證數據表不再存在重復,因為,因為重復記錄可以有無限多條而不僅僅是只有兩條重復一種情況。
下面語句可以刪除t1表中a列有重復的記錄,對於有重復的記錄只保留最新的那一條記錄,讓該表不再有重復:
Ⅳ 資料庫 兩條 相同 記錄 怎麼 刪除
在資料庫中加個id,作為主鍵並自動編號,
將你需要刪除的欄位刪除後,再將id列去掉。