select 1 与select * 的比较

jin_cto 2016-03-17 04:24:56
select MC.STCODE,MC.STNAME,SUM(MC.TOTAL) TOTAL,'非周末'
from MC_SDRPTSXS MC,FASOLARTOLUNAR FA
where MC.FILDATE=FA.SOLARDATE AND exists (select 1
from store
where store.countries = '中国香港' AND CODE LIKE /*VSTCODE ||*/ '000871%'
and MC.stgid = gid)
and fildate>='2016-03-06'
and fildate<'2016-03-17'
AND FA.WEEK not IN ('星期六','星期日')
GROUP BY MC.STCODE,MC.STNAME

select MC.STCODE,MC.STNAME,SUM(MC.TOTAL) TOTAL,'非周末'
from MC_SDRPTSXS MC,FASOLARTOLUNAR FA,store
where MC.FILDATE=FA.SOLARDATE AND store.countries = '中国香港' AND CODE LIKE /*VSTCODE ||*/ '000871%'
and MC.stgid = gid
and fildate>='2016-03-06'
and fildate<'2016-03-17'
AND FA.WEEK not IN ('星期六','星期日')
GROUP BY MC.STCODE,MC.STNAME
这两个有啥不一样,那个更好点?
...全文
1853 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sword1028 2016-03-22
  • 打赏
  • 举报
回复
单纯性能角度1>*,但是这点提升非常有限。
zy18755122285 2016-03-22
  • 打赏
  • 举报
回复
1、select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
zkzhong 2016-03-17
  • 打赏
  • 举报
回复
前着返回的值都是1,就是看看有没有数据或者有多少条 后者能看到每个字段的值。效率上1查询的快点
bo871747022 2016-03-17
  • 打赏
  • 举报
回复
效率上来说是1快点,不过这点差别不必在意
寡丶人 2016-03-17
  • 打赏
  • 举报
回复
select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
卖水果的net 2016-03-17
  • 打赏
  • 举报
回复
这种情况下: select 0 , select 1, select *, select PK 都一样,不用过于关注这些;
陈灬风 2016-03-17
  • 打赏
  • 举报
回复
现在11g、12c了;没啥区别了

17,377

社区成员

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

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