请帮忙修改一条sql语句???

qingYun1029 2012-01-19 09:14:00

select fr_id,take_car_city,back_car_city,car_model,NORMAL_PRICE,
(
case FEE_RIDE_STATE
when '待预订' then '待预订'
else '已订完'
end
) FEE_RIDE_STATE from VW_FREE_RIDE where rownum<7 order by cre_date desc


修改要求,先按时间倒叙,然后取前6条数据,谢谢了!!!
...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pl_mm5 2012-02-02
  • 打赏
  • 举报
回复
where rownum <7;
高吧~
hllfl 2012-02-02
  • 打赏
  • 举报
回复
where rownum <= 6;

where rownum <7;
效率搞。
Larry 2012-02-02
  • 打赏
  • 举报
回复
WITH WTTB AS 
(
SELECT FR_ID,TAKE_CAR_CITY,BACK_CAR_CITY,CAR_MODEL,NORMAL_PRICE,CRE_DATE,
CASE FEE_RIDE_STATE WHEN '待预订' THEN '待预订' ELSE '已订完' END FEE_RIDE_STATE
FROM VW_FREE_RIDE ORDER BY CRE_DATE DESC
)
SELECT FR_ID,TAKE_CAR_CITY,BACK_CAR_CITY,CAR_MODEL,NORMAL_PRICE,FEE_RIDE_STATE
FROM WTTB WHERE ROWNUM < 7;
lzz7658823 2012-01-19
  • 打赏
  • 举报
回复
select tt.*
from (select fr_id,
take_car_city,
back_car_city,
car_model,
NORMAL_PRICE,
(case
when FEE_RIDE_STATE = '待预订' then
'待预订'
else
'已订完'
end) FEE_RIDE_STATE
from VW_FREE_RIDE
ORDER BY DATETIME desc --假设你表里的时间字段为DATETIME
) tt
where rownum < 7
qingYun1029 2012-01-19
  • 打赏
  • 举报
回复
再问一下,这个效率是做好的吗?也就是这条sql语句可以优化不???
qingYun1029 2012-01-19
  • 打赏
  • 举报
回复
谢谢各位了。。。
我心飞翔 2012-01-19
  • 打赏
  • 举报
回复
实测:

CREATE TABLE T66
(
MyTime DATE,
Money NUMBER(4)
);
INSERT INTO T66 VALUES(to_date('2011-12-01', 'YYYY-MM-DD'), 1);
INSERT INTO T66 VALUES(to_date('2011-12-02', 'YYYY-MM-DD'), 2);
INSERT INTO T66 VALUES(to_date('2011-12-03', 'YYYY-MM-DD'), 3);
INSERT INTO T66 VALUES(to_date('2011-12-04', 'YYYY-MM-DD'), 4);
INSERT INTO T66 VALUES(to_date('2011-12-05', 'YYYY-MM-DD'), 5);


按时间倒序取3条:


opps_zhou 2012-01-19
  • 打赏
  • 举报
回复
做一个子查询就可以了

select *
from (select fr_id,take_car_city,back_car_city,car_model,NORMAL_PRICE,
(
case FEE_RIDE_STATE
when '待预订' then '待预订'
else '已订完'
end
) FEE_RIDE_STATE,
row_number() over(order by cre_date desc) as isort from VW_FREE_RIDE
) t
where isort <= 6;


select *
from (select fr_id,take_car_city,back_car_city,car_model,NORMAL_PRICE,
(
case FEE_RIDE_STATE
when '待预订' then '待预订'
else '已订完'
end
) FEE_RIDE_STAT from VW_FREE_RIDE order by cre_date desc
) t
where rownum <= 6;
zdj624489750 2012-01-19
  • 打赏
  • 举报
回复
select * from (select fr_id,take_car_city,back_car_city,car_model,NORMAL_PRICE,
(
case FEE_RIDE_STATE
when '待预订' then '待预订'
else '已订完'
end
) FEE_RIDE_STATE from VW_FREE_RIDE order by cre_date desc
)where rownum<7 就应该好了吧

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧