oracle中去掉某列重複的記錄

2021-06-21 16:10:51 字數 1798 閱讀 4547

建立測試表

create table temp_mul_tbl(

id varchar2(20) primary key,

name varchar2(50),

age int

);

為表和字段新增注釋

comment on table temp_mul_tbl is '測試表';

comment on column temp_mul_tbl.id is '主鍵';

comment on column temp_mul_tbl.name is '姓名';

comment on column temp_mul_tbl.age is '年齡';

建立該錶主鍵要用的序列

comment on table temp_mul_tbl is '測試表';

comment on column temp_mul_tbl.id is '主鍵';

comment on column temp_mul_tbl.name is '姓名';

comment on column temp_mul_tbl.age is '年齡';

新增測試資料

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'lxl', 26);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'zhangsan', 26);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'lxl', 27);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'lisi', 28);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'wangwu', 28);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'lxl', 23);

insert into temp_mul_tbl(id, name, age)values(seq_temp_mul_tbl.nextval, 'lxl', 24);

執行以下sql,查詢出所有的記錄

seq_temp_mul_tbl
結果如下圖所示

下面我們要去掉name重複的記錄,sql如下:

select *

from temp_mul_tbl t

where t.id in (select max(s.id) from temp_mul_tbl s where s.name = t.name);

執行結果如下:

和上面查詢全部的結果相比較,已經去掉了name重複的記錄, name 為 「lxl」 的記錄,只顯示了一條。

使用awk去掉檔案中某列重複的行

原資料檔案test格式如下 30 nov 2014 09 30 42 192.168.0.112 54eb28a7 149fe14728b 1e07 1417309903531 fi t tf bbb 30 nov 2014 09 30 42 192.168.0.112 54eb28a7 149fe...

Oracle中去除重覆記錄的方法

參考 1 使用distinct關鍵字 1 建立臨時表 2create table t 1 temp as select distinct from t 1 t 3 截斷表4 truncate table t 1 5 將臨時表的資料插入到本表 6insert into t 1 select from ...

sql DISTINCT 關鍵字去掉重複的列

distinct關鍵字主要用來從select語句的結果集中去掉重複的記錄。如果使用者沒有指定distinct關鍵字,那麼系統將返回所有符合條件的記錄組成結果集,其中包括重複的記錄。記錄一下工作中用到的sql語句吧,下面sql實現了去掉重複列id後顯示的資料。select distinct u.id,...