楼主: chirsdong

傻瓜问题:FORM 里不能用ORDER BY吗?

[复制链接]
论坛徽章:
164
技术图书徽章
日期:2018-12-26 10:01:29指数菠菜纪念章
日期:2013-06-28 17:41:29蛋疼蛋
日期:2013-04-03 16:29:52指数菠菜纪念章
日期:2013-04-01 15:26:282013年新春福章
日期:2013-02-25 14:51:24指数菠菜纪念章
日期:2013-01-04 11:30:40指数菠菜纪念章
日期:2012-09-29 10:28:42版主6段
日期:2012-05-15 15:24:11指数菠菜纪念章
日期:2012-03-31 14:04:28茶鸡蛋
日期:2012-03-12 16:56:15
11#
发表于 2005-4-11 10:38 | 只看该作者
最初由 chirsdong 发布
[B]


比如:一个符合条件的赛选返回多条记录,这时要选最新的记录返回!这样就要在子查询里用ORDER BY (DATE) DESC ,用ROWNUM=1选取第一条记录,但是这时报错,说ORDER
BY ,有错误! [/B]


你可以把最新的DATE先找出来不就行了,再写到WHERE条件中去

使用道具 举报

回复
论坛徽章:
24
ITPUB元老
日期:2007-08-09 20:13:55蜘蛛蛋
日期:2012-11-18 21:00:26灰彻蛋
日期:2012-04-14 18:30:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:342010年世界杯参赛球队:尼日利亚
日期:2010-03-16 13:40:192009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:虎
日期:2009-07-22 09:38:24奥运会纪念徽章:赛艇
日期:2008-10-24 13:25:17
12#
 楼主| 发表于 2005-4-11 10:52 | 只看该作者
最初由 Harry_shan 发布
[B]

你可以把最新的DATE先找出来不就行了,再写到WHERE条件中去 [/B]




那你怎么找最新的DATE呢?不是用ORDER BY 吗?这时要在一个TRIGGER重用的!
事实上我也可以用RANK来做,但是我觉得用ORDER BY 方便一些!

使用道具 举报

回复
论坛徽章:
164
技术图书徽章
日期:2018-12-26 10:01:29指数菠菜纪念章
日期:2013-06-28 17:41:29蛋疼蛋
日期:2013-04-03 16:29:52指数菠菜纪念章
日期:2013-04-01 15:26:282013年新春福章
日期:2013-02-25 14:51:24指数菠菜纪念章
日期:2013-01-04 11:30:40指数菠菜纪念章
日期:2012-09-29 10:28:42版主6段
日期:2012-05-15 15:24:11指数菠菜纪念章
日期:2012-03-31 14:04:28茶鸡蛋
日期:2012-03-12 16:56:15
13#
发表于 2005-4-11 11:16 | 只看该作者
可以用MAX函数啊

使用道具 举报

回复
论坛徽章:
24
ITPUB元老
日期:2007-08-09 20:13:55蜘蛛蛋
日期:2012-11-18 21:00:26灰彻蛋
日期:2012-04-14 18:30:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:342010年世界杯参赛球队:尼日利亚
日期:2010-03-16 13:40:192009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:虎
日期:2009-07-22 09:38:24奥运会纪念徽章:赛艇
日期:2008-10-24 13:25:17
14#
 楼主| 发表于 2005-4-11 11:39 | 只看该作者
呵呵!跑题了!在FORM里好像还是不能用ORDER BY 啊!

使用道具 举报

回复
招聘 : 技术/实施/服务顾问
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:102009新春纪念徽章
日期:2009-01-04 14:52:28ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
15#
发表于 2005-4-12 11:49 | 只看该作者

建个cursor然后fetch一下就行

你用了rownum后order by就不起作用了

使用道具 举报

回复
论坛徽章:
63
山治
日期:2016-06-28 11:42:46马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11林肯
日期:2014-02-15 00:11:00现代
日期:2014-02-12 15:26:25林肯
日期:2014-01-25 18:14:10一汽
日期:2014-01-25 17:08:16凯迪拉克
日期:2014-01-23 13:28:44问答徽章
日期:2014-01-22 13:20:46保时捷
日期:2013-12-27 15:47:51
16#
发表于 2005-4-12 17:23 | 只看该作者
楼上说的才是原因吧!用ORDER BY 是不能使用ROWNUM的

使用道具 举报

回复
论坛徽章:
24
ITPUB元老
日期:2007-08-09 20:13:55蜘蛛蛋
日期:2012-11-18 21:00:26灰彻蛋
日期:2012-04-14 18:30:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:342010年世界杯参赛球队:尼日利亚
日期:2010-03-16 13:40:192009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:虎
日期:2009-07-22 09:38:24奥运会纪念徽章:赛艇
日期:2008-10-24 13:25:17
17#
 楼主| 发表于 2005-4-12 17:50 | 只看该作者
最初由 baid 发布
[B]楼上说的才是原因吧!用ORDER BY 是不能使用ROWNUM的 [/B]



,不明白!为什么ORDER BY 时不能用ROWNUM ??

SQL> select rownum,rwm,empno,ename,job,hiredate,sal from (
  2  select rownum rwm,empno,ename,job,mgr,hiredate,sal,deptno from emp  order by hiredate desc
  3  ) a
  4  ;

    ROWNUM        RWM      EMPNO ENAME      JOB       HIREDATE         SAL
---------- ---------- ---------- ---------- --------- --------- ----------
         1         11       7876 ADAMS      CLERK     23-MAY-87       1100
         2          8       7788 SCOTT      ANALYST   19-APR-87       3000
         3         14       7934 MILLER     CLERK     23-JAN-82       1300
         4         12       7900 JAMES      CLERK     03-DEC-81        950
         5         13       7902 FORD       ANALYST   03-DEC-81       3000
         6          9       7839 KING       PRESIDENT 17-NOV-81       5000
         7          5       7654 MARTIN     SALESMAN  28-SEP-81       1250
         8         10       7844 TURNER     SALESMAN  08-SEP-81       1500
         9          7       7782 CLARK      MANAGER   09-JUN-81       2450
        10          6       7698 BLAKE      MANAGER   01-MAY-81       2850
        11          4       7566 JONES      MANAGER   02-APR-81       2975

    ROWNUM        RWM      EMPNO ENAME      JOB       HIREDATE         SAL
---------- ---------- ---------- ---------- --------- --------- ----------
        12          3       7521 WARD       SALESMAN  22-FEB-81       1250
        13          2       7499 ALLEN      SALESMAN  20-FEB-81       1600
        14          1       7369 SMITH      CLERK     17-DEC-80        800

14 rows selected.

SQL> select rownum,rwm,empno,ename,job,hiredate,sal from (
  2  select rownum rwm,empno,ename,job,mgr,hiredate,sal,deptno from emp  order by hiredate desc
  3  ) a
  4  where rownum=1;

    ROWNUM        RWM      EMPNO ENAME      JOB       HIREDATE         SAL
---------- ---------- ---------- ---------- --------- --------- ----------
         1         11       7876 ADAMS      CLERK     23-MAY-87       1100

使用道具 举报

回复
论坛徽章:
7
每日论坛发贴之星
日期:2005-06-23 01:01:12授权会员
日期:2005-11-09 18:19:55会员2006贡献徽章
日期:2006-04-17 13:46:34生肖徽章:虎
日期:2006-09-26 17:34:28生肖徽章:兔
日期:2006-09-26 17:34:43ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44奥运会纪念徽章:击剑
日期:2008-04-23 15:45:13
18#
发表于 2005-4-13 08:50 | 只看该作者
可以用的.但用RDER BY后ROWNUM 可能不按顺序!

使用道具 举报

回复
论坛徽章:
24
ITPUB元老
日期:2007-08-09 20:13:55蜘蛛蛋
日期:2012-11-18 21:00:26灰彻蛋
日期:2012-04-14 18:30:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:342010年世界杯参赛球队:尼日利亚
日期:2010-03-16 13:40:192009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:虎
日期:2009-07-22 09:38:24奥运会纪念徽章:赛艇
日期:2008-10-24 13:25:17
19#
 楼主| 发表于 2005-4-13 11:52 | 只看该作者
最初由 kevin.IT 发布
[B]可以用的.但用RDER BY后ROWNUM 可能不按顺序! [/B]


恩!这时的ROWNUM是ORDERBY 之前的顺序,需要再SELECT时才是想得到的新的ROWNUM!

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2007-04-19 13:22:13ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
20#
发表于 2005-4-13 20:49 | 只看该作者
應該在最外層才可以用order by

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表