有一个ATEST数据表:
create table ATEST (
id number (9),
data1 varchar2 (255))
insert into atest values (1, 100);
insert into atest values (1, 100);
insert into atest values (2, 200);
insert into atest values (2, 200);
insert into atest values (3, 300);
insert into atest values (3, 300);
有必要基于此表创建一个V_ATEST没有重复(相同)数据的 VIEW,即其中只有三行:
ID DATA1
-- -----
1 100
2 200
3 300
我找到了很多关于如何使用DELETEusing删除重复数据的提示rowid,但它不适合我,因为数据ATEST必须保留,并且数据需要输入新的数据VIEW。
告诉我怎么做?
可以使用DISTINCT |创建不重复的视图。UNIQUE或GROUP BY 子句。
由于选择列表中的列的全长或某些数据类型存在限制,因此最好始终显式指定所有列并拒绝隐式转换它们(
*)。以下两种表示是等效的:在实际数据的问题中,实际上不会发生重复记录没有任何差异的情况。如果没有用于确定重复条目顺序的列,那么很可能很快就会添加这样的列。
在这种情况下,您应该立即使用窗口函数对记录进行编号: