这条SQL语句怎么样精简呢

soyestrellafortuna 2012-03-02 06:34:19

select *
from prpdexch
where exchdate = (select max(exchdate)
from prpdexch
where basecurrency = 'HKD'
and exchcurrency = 'CNY'
and validstatus = '1')
and basecurrency = 'HKD'
and exchcurrency = 'CNY'
and validstatus = '1'


一张兑换率表,里面存放的是各种货币之间的兑换率关系。我想查离当前时间最近的一条兑换率信息。于是就写了上面的语句。虽然可以查询出来。但是这种写法我自己都觉得纠结。
请问有没有可以精简的写法呢。谢谢各位了!
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
soyestrellafortuna 2012-03-03
  • 打赏
  • 举报
回复
谢谢各位。结贴。见者有分吧。
我心飞翔 2012-03-03
  • 打赏
  • 举报
回复
建议采用:

SELECT * FROM
(SELECT * FROM prpdexch
WHERE basecurrency = 'HKD'
AND exchcurrency = 'CNY'
AND validstatus = '1'
ORDER BY exchdate DESC)
WHERE ROWNUM = 1;
amdgaming 2012-03-03
  • 打赏
  • 举报
回复
2种方法 哪种比较好啊?

藐视第二种需要在时间上建索引啊
xpingping 2012-03-02
  • 打赏
  • 举报
回复
select * from
(select *
from prpdexch
where basecurrency = 'HKD'
and exchcurrency = 'CNY'
and validstatus = '1'
order by exchdate desc)
where rownum=1


17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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