不可能。想想看,不排序去判断distinct性能的代价是否大了点?这是个基本算法问题。
解决方案 »
- oracle 嵌套表的用法
- 向各位大神求助,oracal 与 SQL Server 数据类型对比
- 【求真相】如何使用工具PL/SQL Developer将由表空间SA用户UA导出的数据导入到用户UB的表空间SB下
- oracle的10.2dmp文件导入问题,有酬谢。
- 请教大家一条sql语句关于论坛发帖排行的
- 我刚刚用database configuration assistant 见了一个oracle的数据库,建完以后我在哪里可以找到这个数据库??我想为这个数据库见一个用户登录到这个数据库,怎样做?
- 一个数据库sql问题
- 新手 oracle Management Server 登錄問題
- imp的错误,oracle数据库EXP出来的.DMP文件,导入时路径是否指定?
- jdbc和oracle的连接问题请教
- 请问,我用ODBC看我的ORACLE,怎么不会列出我的表来。
- 查询时间变化!!!!!!!!
------------------------------
[money] [time]
3373 199901
3373 199902
3373 199903
3373 199904
3373 199905
3373 199906
2899 199907
2899 199908
2899 199909
2899 199910
2899 199911
2899 199912
---------------------------------------
当筛选出数据money列后,得到:
2899
3373
因为它是默认自动排序(升序)
可我要取的值,必须不能改变顺序,也就是[money]列原先数据怎样排序,筛选出来的数据排序不变。
请赐教!!!(分不够在加)
select * from (SELECT distinct BASE FROM PAY_TEMP WHERE id=45563 AND TIME LIKE '1999%' AND INSUREID = '110104541204163') order by rowid
这个不行的
还有别的方法吗??
下面的两个语句或许有用
ops$lg\[email protected] >select *
2 from emp
3 where hiredate = ( select max(hiredate) from emp e2 where e2.deptno =
4 emp.deptno)
5 / EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7934 MILLER CLERK 7782 23-1月 -82 1300 10ops$lg\[email protected] >select *
2 from ( select emp.*, max(hiredate) over ( partition by deptno ) max_hd
3 from emp
4 )
5 where hiredate = max_hd
6 /
因该是x=3373,Y=2899,但oracle自动排序了,所以值就赋反了,这个问题还不能重新排序,因为有的时候,记录集里的数据可能会是
[money] [time]
2563 200001
2563 200002
... ...
3012 200006
3012 200007
... ...
筛选出来以后就应该是小的数在前,所以,最好是去掉自动排序
时间在这里这是一个参考,我不取的。
(select min(rowid) rd,money
from test group by money) order by rd;
这样不知道行不行??
取最小的rowid,这样保证取出同样的money中先录入的记录。
然后按这个rowid升序排列取money。
需要贴主再测试一下。