select count(*) Total,
sum(decode(extract(year from hiredate),'1980',1,0)) "1980",
sum(decode(extract(year from hiredate),'1981',1,0)) "1981",
sum(decode(extract(year from hiredate),'1982',1,0)) "1982",
......
from emp
sum(decode(extract(year from hiredate),'1980',1,0)) "1980",
sum(decode(extract(year from hiredate),'1981',1,0)) "1981",
sum(decode(extract(year from hiredate),'1982',1,0)) "1982",
......
from emp
前面4-7 from后面的子查询询问为何不直接主查询,这里就是一个反证。产生新表,改变行号。相信以后会有更多的应用。学习初级阶段前辈告诫我要知其然,不要知其所以然。我们还没有资格与时间去奢侈。
2016-08-12
这个不仅是好看的原因,还有实用的价值。
比如报错会有提示第几行出错,如果是第二种只有一行,那么你只能全部检查了。
但是如果是第一种六七行的话,只需要检查几个单词而已。
而且面试的时候会有问你写了多少行代码,如果是第二种方式,你只写了一万行代码。
可是换成第一种方式,你底气十足的回到道写了五万行代码。
现在的代码工具都是以行为标准的。
这是什么概念。实习期上万的节奏啊。
比如报错会有提示第几行出错,如果是第二种只有一行,那么你只能全部检查了。
但是如果是第一种六七行的话,只需要检查几个单词而已。
而且面试的时候会有问你写了多少行代码,如果是第二种方式,你只写了一万行代码。
可是换成第一种方式,你底气十足的回到道写了五万行代码。
现在的代码工具都是以行为标准的。
这是什么概念。实习期上万的节奏啊。
2016-08-12