ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 934|回复: 4

[SQL] 关于大于号和Between,请问哪种SQL查询更好?谢谢~

[复制链接]
认证徽章
论坛徽章:
15
ERP板块每日发贴之星
日期:2007-08-24 01:03:56狮子座
日期:2015-09-10 09:07:23处女座
日期:2015-09-11 10:28:03ITPUB14周年纪念章
日期:2015-10-26 17:23:44喜羊羊
日期:2015-06-24 14:33:00慢羊羊
日期:2015-06-15 14:22:442015年新春福章
日期:2015-03-12 17:22:46优秀写手
日期:2014-11-20 06:00:13茶鸡蛋
日期:2013-06-29 22:37:49蛋疼蛋
日期:2013-04-27 10:34:16
跳转到指定楼层
1#
发表于 2017-11-21 11:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--1.用大于号
Select Max(a.cst_creation_dt)
  From hpt_a a
Where a.cst_creation_dt > :bsysdate ;
--2.用Between
Select Max(a.cst_creation_dt)
  From hpt_a a
Where a.cst_creation_dt between :bsysdate  and :esysdate;
认证徽章
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
2#
发表于 2017-11-21 12:53 来自手机 | 只看该作者
如果从性能角度讲,不好说,看具体情况,从字面看,后者好些,毕竟多了个上限。

使用道具 举报

回复
认证徽章
论坛徽章:
15
ERP板块每日发贴之星
日期:2007-08-24 01:03:56狮子座
日期:2015-09-10 09:07:23处女座
日期:2015-09-11 10:28:03ITPUB14周年纪念章
日期:2015-10-26 17:23:44喜羊羊
日期:2015-06-24 14:33:00慢羊羊
日期:2015-06-15 14:22:442015年新春福章
日期:2015-03-12 17:22:46优秀写手
日期:2014-11-20 06:00:13茶鸡蛋
日期:2013-06-29 22:37:49蛋疼蛋
日期:2013-04-27 10:34:16
3#
发表于 2017-11-21 13:06 | 只看该作者
sqysl 发表于 2017-11-21 12:53
如果从性能角度讲,不好说,看具体情况,从字面看,后者好些,毕竟多了个上限。

是的,假如只查看最后一天的数据呢?

使用道具 举报

回复
论坛徽章:
480
榜眼
日期:2015-09-09 10:34:21秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12秀才
日期:2015-11-23 10:03:12状元
日期:2015-11-23 10:04:09举人
日期:2015-11-23 10:04:09
4#
发表于 2017-11-21 22:44 | 只看该作者
BETWEEN是等价于>= AND <=
所以你这写法本来就不等价,也不能比较。
如果日期有索引,最后一天的数据仅占少数,那么和TRUNC(SYSDATE)比较,应该是两种都能用上索引。

使用道具 举报

回复
认证徽章
论坛徽章:
15
ERP板块每日发贴之星
日期:2007-08-24 01:03:56狮子座
日期:2015-09-10 09:07:23处女座
日期:2015-09-11 10:28:03ITPUB14周年纪念章
日期:2015-10-26 17:23:44喜羊羊
日期:2015-06-24 14:33:00慢羊羊
日期:2015-06-15 14:22:442015年新春福章
日期:2015-03-12 17:22:46优秀写手
日期:2014-11-20 06:00:13茶鸡蛋
日期:2013-06-29 22:37:49蛋疼蛋
日期:2013-04-27 10:34:16
5#
发表于 2017-11-22 10:49 | 只看该作者
newkid 发表于 2017-11-21 22:44
BETWEEN是等价于>= AND

是的,都能用上索引。谢谢~

最终决定用  date >sysdate -1

使用道具 举报

回复

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

本版积分规则

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