1樓:匿名使用者
1、name相同,刪除的資料不存在其他字段不同嗎?
2、刪除第一條記錄沒有條件排序嗎?是任意刪除一條嗎
3、增加的時候是不是可以做個驗證,存在此name的不讓新增那
如何刪除資料庫中相同的記錄其中的一條,但要保留一條資料?
2樓:匿名使用者
建議這樣做,比較簡單,給表加乙個id欄位,預設自增,這樣不會影響表的其他結構,然後寫這樣的sql:
delete from demo where id in (select id from demo where id <> (select top 1 id from demo where name = 'name' and age = 'age') and name = 'name' and age = 'age')
雖然沒測試,不過感覺肯定可行!只是個建議,呵呵!
3樓:匿名使用者
select * from demo
sql根據某乙個字段重複只取第一條資料
4樓:
使用分析函式row_number() over (partiion by ... order by ...)來進行分組編號,然後取分組標號值為1的記錄即可。
目前主流的資料庫都有支援分析函式,很好用。
其中,partition by 是指定按哪些字段進行分組,這些字段值相同的記錄將在一起編號;order by則是指定在同一組中進行編號時是按照怎樣的順序。
示例(sql server 2005或以上適用):
select s.*
from (
select *, row_number() over (partition by [手機號] order by [店鋪]) as group_idx
from table_name
) swhere s.group_idx = 1
5樓:匿名使用者
用group by 最後乙個字段 用個max()
6樓:發生等將發生
如果僅僅只是查詢出來去從,那麼就用distinctselect distinct 需要去重的列明(允許多列) from table
如果是需要在表中刪除,可以這樣處理
1、建立臨時表,將重複記錄查詢出來去重插入到臨時表2、刪除實表中的重複記錄
3、將臨時表中的記錄插入到實表
處理完成
7樓:匿名使用者
最簡單的 select distinct (手機號)
sql刪除某條字段相同的的資料,留下一條 10
8樓:匿名使用者
你的描述不是很清楚,按你的意思,是把id重複的資料刪除,但是我不知道name,age要採用什麼樣的規則來判斷那些要保留,還有表的唯一約束的字段是什麼?
如果tablea,tableb是2張表的話insert into tableb select id ,min(name),min(age) from tablea group by id
一張表的話
select a1.* from tableb a1 where a1.rowid = (select max(rowid) from tableb a2 where a1.
id=a2.id )
9樓:寒林夢沙
sql server,使用row_number配合開窗函式,取每條記錄的第一條
select * from (select col1,col2,row_number() over (partition by col1,col2 order by col1,col2) as rnk from table) a where rnk=1
10樓:匿名使用者
可以這樣操作
delete from a where id in (select max(id) from a group by name) 即可
11樓:匿名使用者
可以這樣來刪除
delete from tablea where name <> (select min(name) from tablea b where tablea.id = b.id)
12樓:匿名使用者
tablea: --> tableb:
你是要 把 tablea 資料清理好了, 插入到 tableb ?
insert into tableb
select
*from
tablea
where
not exists (
select 1
from tablea ta
where tablea.id = ta.id and tablea.age > ta.age)
13樓:我的個神啊你
distinct()
14樓:細雨雨淚
select distinct(id) from tablea
如何刪除sql 資料庫表中某兩個字段相同的記錄
15樓:匿名使用者
sql 2005/08 可以用 row_number 處理-- 測試表
declare @tb_test table(col1 int,
col2 int
);insert @tb_test
select 1, 1 union allselect 1, 1 union allselect 1, 2 union allselect 1, 2;
-- 刪除處理
with
data as(
select rid = row_number() over(partition by col1, col2 order by col1, col2),
*from @tb_test
)delete from data
where rid <> 1;
-- 顯示處理結果
select * from @tb_test;
oracle某個欄位有重複資料,如何刪除多餘資料只保留1條
16樓:匿名使用者
1、查詢表中多餘的重複記錄,重複記錄是根據單個字段(peopleid)來判斷。
2、刪除表中多餘的重複記錄,重複記錄是根據單個字段(peopleid)來判斷,只留有rowid最小的記錄。
3、查詢表中多餘的重複記錄(多個字段)。
4、刪除表中多餘的重複記錄(多個字段),只留有rowid最小的記錄。
5、查詢表中多餘的重複記錄(多個字段),不包含rowid最小的記錄。就完成了。
17樓:匿名使用者
delete from z t where t.rowid not in (select min(rowid) from z t1 where t1.id=t.
id group by id)
怎麼讓textbox繫結資料庫中的字段
this.text dt.rows 行數 來 欄位名 tostring textbox元件 源 文字框元件 是一種常用的,也是比較容易掌bai握的組du件。應用程式主要使用zhi它dao來接收使用者於輸入文字資訊。由於textbox類的成員實在太豐富,乙個示例要想介紹上述所有的方法 屬性和事件是不可...
access資料庫中欄位身份證號碼的資料型別應設為
字元型,長度18位就行了。因為身份證尾數有可能是 x 所以你設定數值型會報錯。身份證號碼應該設定為字元型,應為存在最後一位驗證碼是x的情況,所以不能全用數字。資料庫裡用於記載身份證號碼的字段應該使用 字元型 資料型別。儘管絕大多數的身份證號碼資訊都是由數字組成的,但是不能排除身份證號碼身份證號碼裡需...
如何對mySQL資料庫中某些特定字段進行排序
set count 0 update tb t1,select count count 1 as count 日期 金額 from tb order by 日期 desc t2 set t1.日期 t2.日期 t1.金額 t2.金額 where t1.id t2.count 如何對mysql資料庫中...