数据库oracle中怎么用distinct取消重复行
例如一个表xskc中有c_id,s_id俩字段,我要取消c_id的重复行,显示c_id和s_id。程序是什么?...
例如一个表xskc中有c_id,s_id俩字段,我要取消c_id的重复行,显示c_id和s_id。程序是什么?
展开
6个回答
展开全部
首先,对你的需求有点模糊,取消c_id的重复行,然后还显示c_id,s_id。上面两个SQL不知道是否满足你的需求,就比如
select distinct c_id,s_id from xskc ,这条语句消除的是c_id和s_id同时一样的记录,所以单就c_id,还是会有重复的情况。
SQL> desc dup
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(10)
SQL> select * from dup;
ID NAME
---------- ----------
1 AAA
2 AAA
1 BBB
3 BBB
SQL> select distinct id,name from dup;
ID NAME
---------- ----------
1 AAA
1 BBB
2 AAA
3 BBB
SQL> select distinct id from dup;
ID
----------
1
2
3
所以不管怎么样,如果你要显示c_id和s_id的话,c_id基本都可能重复,除非你还有其他的条件限制
select distinct c_id,s_id from xskc ,这条语句消除的是c_id和s_id同时一样的记录,所以单就c_id,还是会有重复的情况。
SQL> desc dup
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(10)
SQL> select * from dup;
ID NAME
---------- ----------
1 AAA
2 AAA
1 BBB
3 BBB
SQL> select distinct id,name from dup;
ID NAME
---------- ----------
1 AAA
1 BBB
2 AAA
3 BBB
SQL> select distinct id from dup;
ID
----------
1
2
3
所以不管怎么样,如果你要显示c_id和s_id的话,c_id基本都可能重复,除非你还有其他的条件限制
展开全部
想针对个别字段取消重复行的话,可以对该字段使用group by语句,例如:
select c_id, min(s_id)
from xskc
group by c_id
Distinct 是确保整行数据不重复的,就像其他朋友已经说明的。
select c_id, min(s_id)
from xskc
group by c_id
Distinct 是确保整行数据不重复的,就像其他朋友已经说明的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
distinct只能用于消除重复的行,而不能消除重复的字段
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接在重复的列名前加distinct就行了
比如 select distinct sno from student
比如 select distinct sno from student
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select distinct c_id,s_id from xskc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询