重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
通用的 行专列很复杂。
创新互联专注于企业成都全网营销推广、网站重做改版、海州网站定制设计、自适应品牌网站建设、H5网站设计、商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海州等各大城市提供网站开发制作服务。
建议先确定 哪些课程号 select distinct 课程号from score 。
然后可以参照代码:
select 学号, sum(decode(课程号,1,分数,0))课程1分数,
sum(decode(课程号,2,分数,0))课程2分数,
sum(decode(课程号,3,分数,0))课程3分数,
.......
from score
group by 学号
select 编号,姓名,SUM(CASE WHEN 科目='语文' THEN 成绩 END) 语文,
SUM(CASE WHEN 科目='数学' THEN 成绩 END) 数学,
SUM(CASE WHEN 科目='英语' THEN 成绩 END) 英语
from 表 GROUP BY 编号,姓名
你把屏幕旋转90°,或者你把脑袋横着屏幕也可以。
不仅仅是 Oracle ,就目前人类已经创造的数据库而言,在显示习惯上,不管是屏幕还是纸质,横向显示列(Col),纵向显示行(Row),因为表的数据增减是沿着行(Row)的方向增减,而人们更习惯于纵向快速对比同一列的多行信息,而不善于横向对比同一行的多列信息。
大概可以猜到你希望构建一个数据结果视图,这个视图的列值是指定的某个月的全部日期,如果在最左边再加上几列,比如序号、名次、姓名,最右边再加上一列,比如总业绩,那么就可以用来展示该月全体销售人员的销售额以及排名。如果要实现类似需求,那么就努力构造你的 SQL 语句吧,虽然没有证据证明无法用 SELECT 语句实现,但似乎SELECT 必须制定列名,即使你使用 * 那也代表的是所有列。如果配合程序语言,那么实现起来就很简单。你可以试试存储过程,动态创建表,直接构造你需要的列,然后 SELECT * 即可。
上个世纪出现计算机屏幕的时候,屏幕显示就是纵向滚屏,横向从来没动过,至今人们已经习惯了屏幕纵向滚动,因为大多数语言文字都是横向排版比较适合人们的阅读习惯,纵向阅读确实费劲。如果最初屏幕是横向滚动的,那么现在情况也许就截然不同了。
顺便说一下,阅读横向排版的纸质或电子版的中文书籍,页面较宽而字符较小行距较小的时候,容易找错下一行。阅读英文则很少有此情况,这也许是方块字与长短英文单词的区别?阅读台湾出版的纵向排版的中文书籍,刚开始不习惯,后来觉得确实比横向排版有优势。比如,你单手把书翻卷起来,阅读到接近中缝的文本时,不需要反复以书脊为轴转动书本,阅读很方便。而如果是横排,那么你看到接近中缝的几个字之后,需要转动书本再去找举例中缝最远的下一行,很容易就找错了。也许,如果计算机最初是台湾人发明的,那么现在鼠标中间那个滚轮就应该是横着的,电脑屏幕也是横向滚动,而纵向基本不动了。看看下面这段纵向文字,舒服不?
怎
样
把
一
个
月
的
日
期
转
换
成
横
向
分
布
?
扯远了,自己构建临时动态表吧,或者在程序中构建动态视图。