Oracle学习时关于SQL语言的总结(三)
to_char(hiredate,'YYYY'),1981,1,0)) "1981", sum(decode(to_char(hiredate,'YYYY'),1982,1,0)) "1982", sum(decode(to_char(hiredate,'YYYY'),1987,1,0)) "1987" from emp
这个例子相当相当重要! 其中select decode(to_char(hiredate,'YYYY'),1980,1,0) from emp这个语句是核心 如果年份是1980的将其置为1,否则为0,这样操作了所有的年份(相当于形成了一张临时表) 然后再利用sum计算其和(即计算这个临时表的总和就知道有多少个1980了)!!! 同理可以判断每个月份有多少人入职 select sum(decode(to_char(hiredate,'MM'),02,1,0)) "2月入职", sum(decode(to_char(hiredate,'MM'),03,1,0)) "3月入职", sum(decode(to_char(hiredate,'MM'),04,1,0)) "4月入职", sum(decode(to_char(hiredate,'MM'),05,1,0)) "5月入职" from emp