Oracle中简单的关联查询

搬好每一块砖 2015-07-24 08:38:50


请看清题目要求再做 O(∩_∩)O
...全文
788 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
金木犀 2018-01-30
  • 打赏
  • 举报
回复
select name ,
       SUM(decode(course,'yuwen',score,0)) 'yuwen,
       SUM(decode(course,'shuxue',score,0)) shuxue,
       SUM(decode(course,'yingyu',score,0)) yingyu
  from grate
 group by name        


碧水幽幽泉 2017-09-13
  • 打赏
  • 举报
回复
最基本的SQL查询,简单的关联查询!
搬好每一块砖 2017-09-12
  • 打赏
  • 举报
回复
凡是说不会做,肯定是没有亲自写过sql去尝试的,那你这个学习很是被动啊
qq_32504125 2016-03-14
  • 打赏
  • 举报
回复
看图我晕了 不要看 不要看 不要看
zy18755122285 2016-03-04
  • 打赏
  • 举报
回复
carolyn_tong 2015-08-15
  • 打赏
  • 举报
回复
null值上不能加引号
carolyn_tong 2015-08-15
  • 打赏
  • 举报
回复


null值上加引号.
IvanO_O 2015-08-07
  • 打赏
  • 举报
回复
这图看的我也是醉了
binsweet 2015-08-03
  • 打赏
  • 举报
回复
基本的行列转换
select name ,
       SUM(decode(course,'语文',score,‘null')) 语文,
       SUM(decode(course,'数学',score,‘null')) 数学,
       SUM(decode(course,'英语',score,‘null')) 英语
  from t
 group by name
saillw 2015-08-03
  • 打赏
  • 举报
回复
学习了,DECODE函数
印度张三 2015-08-03
  • 打赏
  • 举报
回复
select name , SUM(decode(course,'语文',score,'null')) 语文, SUM(decode(course,'数学',score,'null')) 数学, SUM(decode(course,'英语',score,'null')) 英语 from orade group by name
qq_30274415 2015-08-01
  • 打赏
  • 举报
回复
学渣一枚,求学心切,点进来一看,结果一早上都没看懂
卖水果的net 2015-07-27
  • 打赏
  • 举报
回复
-- 图片不清楚,眼晕

select name ,
       SUM(decode(course,'语文',score,0)) 语文,
       SUM(decode(course,'数学',score,0)) 数学,
       SUM(decode(course,'英语',score,0)) 英语
  from t
 group by name        
       
oracle的sql优化方法 1.全表扫描和索引扫描   大数据量表尽量要避免全表扫描,全部扫描会按顺序每条记录扫描,对于>100万数据表影响很大。   Oracle通过RowID访问数据是最快的方式   对字段进行函数转换,或者前模糊查询都会导致无法应用索引而进行全表扫描   对Oracle共享池和缓冲区的Sql必须要大小写都完全用上才能够匹配上 2.顺序问题   Oracle按照从右到左的顺序对数据表进行解析。因此From最后面的表为基础表,一般要选择记录数最少的表作为基础表。   对于Where条件的顺序,过滤到最大查询记录数量的条件必须写在Where条件的结尾处。   Where条件涉及到使用复杂函数判定的必须注意要写到Where条件的最前面 3.索引方面   记录数少的表保留有主键索引就可以了,不要再去建其它索引,全表扫描也很快   索引最好单独建立表空间,必要时候对索引进行重建   必要时候可以使用函数索引,但不推荐使用   Oracle的视图也可以增加索引,但一般不推荐使用   *Sql语句大量使用函数时候会导致很多索引无法使用上,要针对具体问题分析 4.其它   避免使用Select *,因为系统需要去帮你将*转换为所有的列名,这个需要额外去查询数据字典。   Count(1)和Count(*)差别不大。   多使用Decode函数来作简单的代码和名称间的转换,以减少表关联   使用Truncate替代delete来删除记录,但Truncate数据不记录日志,无法进行回滚   对于复杂的存储过程可以多次提交的数据的要多分多次Commit,否则长事务对系统性能影响很大   Distinct和Having子句都是耗时操作,应该尽可能少使用   在不需要考虑重复记录合并时候用Union All来代替Union   使用显性游标而不使用隐性游标,特别是大数据量情况下隐性游标对性能影响很大   是否使用函数的问题   用直接的表关联来代替Exist.用Exist或Not Exists来代理In。In进行子查询效率很差。 5.SQL语句分析   通过SQLPLUS的SET TRACE 功能对Sql语句的性能进行分析   通过Toad或PL/SQL Developer对语句的性能进行和索引的使用情况进行分析   对Oracle缺省的优化不满意可以强制使用Hint,但一般不推荐使用   对Flag等只存储是或否信息的字段,一般不推荐建立索引。必要可以采用位图索引   *存在递归查询情况如果关联Table太多对性能会造成较大影响,往往推荐采用临时表转为分步骤操作提高性能   *尽量使用表关联查询而不使用函数,但涉及类似于代码表要重复关联多次取数据问题时候又适合使用函数

17,377

社区成员

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

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