decode(PERSONALID,Null,0,1):如果PERSONALID=null 则返回 0 否则 返回 1
decode(PERSONALID,Null,1,0):如果PERSONALID=null 则返回 1 否则 返回 0

解决方案 »

  1.   

    sum(1) 在这里的作用相当于 count(*)就是看看每个宿舍楼共有多少房间,使用的和未使用的房间数各有多少。
      

  2.   

    SUM(1)是按BUILDING,HOSTELNAME汇总后这条记录是由几个记录汇总来的。sum(decode(PERSONALID,Null,0,1)) as usedTotal,
    sum(decode(PERSONALID,Null,1,0)) as NousedTotal 是分别对无员工号的员工号的记录和有员工号的记录累加。这个查询最后结果是显示每个楼里的每个宿舍的总人数,和这些人里无员工ID的人数和有员工ID的人数。