先举例:
table:
字段一,字段二
a,1
a,2
a,3
我做如下查询:
select distinct 字段一 from table;得到如下查询结果:
字段一
a问题是这样,这个查询结果是以上表中的第几条记录?
也就是说,distinct操作是取重复记录中的哪一条?第一条,最后一条,或者是随机取值?
table:
字段一,字段二
a,1
a,2
a,3
我做如下查询:
select distinct 字段一 from table;得到如下查询结果:
字段一
a问题是这样,这个查询结果是以上表中的第几条记录?
也就是说,distinct操作是取重复记录中的哪一条?第一条,最后一条,或者是随机取值?
解决方案 »
- oracle数据查询
- 这个SQL语句怎么写?
- 有谁去大唐微电子面试过嘛!
- 存储过程中使用select时的问题
- 在jbuilder中引用oracle.sql.*,oracle.jdbc.*有问题????
- 用oledb能不能连接到安装在sun unix小型机上oracle数据库?
- oracle 取当前数据的前N条记录
- 使用dbms_output.put_line错误,请求帮助!
- ★★如何获得没有被提交的事务和会话★★
- 查询其他USER的表,怎样才能不用带USER名?为何在ACCESS中用TABLELINK能看到很多PUBLIC和CTXSYS的表?
- shell 中的if问题啊,
- DBLINK 和 execute immediate 如何结合的问题,请帮忙,急,在线等~!
查询出某个字段不重复的记录
过滤掉多余的重复记录只保留一条。肯定不是取第几条记录!
我举个例子,例如sql对distinct操作的步骤是这样的(这仅仅是一个举例,实际可能根本不是这么处理的)
步骤一:建立一个临时表
步骤二:扫描原表,获取原表中第一条记录中的数据(a或其他值)
步骤三:判断数据(a或其他值)在临时表是否存在,如果不存在就把数据(a或其他值)插入临时表,否则跳过该记录
重复步骤二直至原表中最后一条记录;
这样就得到一个没有重复记录的临时表,把这个临时表中的数据查询出来就是所要的结果。
总结来说,这个例子就是取原表中重复数据第一次出现的那条记录中的数据。我希望是能得到一个这样的分析结果。
不过还是要谢谢你的回复。
我不想把这个需求再重复的表述一遍,大家如果感兴趣的话可以去这个地址看看:
http://blog.csdn.net/zhuweifeng/archive/2008/09/22/2961105.aspx
你可以试一下加上字段二。
如果你想取 字段二 是 1或者3的可以
select 字段一,min(字段2) from 表名 group by 字段一
得到的结果就是 a , 1 min改为max 就是 a,3
B,2
A,3
B,4
无非是一个排序的问题。
最终起到排序作用的也是字段二也就是数字那一列,跟前一列的字母没有任何关系!