当前位置: 代码迷 >> Sql Server >> 关于列转行时,加入case when判断。解决方法
  详细解决方案

关于列转行时,加入case when判断。解决方法

热度:30   发布时间:2016-04-24 10:22:34.0
关于列转行时,加入case when判断。

select * 
from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
   FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
  left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
  left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
  left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
 pivot( max(  b.[ReceiverNumber] ) for b.BureauName in (办公室,办信处)) m 

上面是行转列的sql语句。
下面是查询出来的结果,但是我想在sql语句中加入判断,ReceiverNumber为null就返回0 但是不知道该在哪里加。
求指导。关联的表好几张,就没有直接放上来。

吐槽一下,csdn终于能直接上传图片了。
------解决方案--------------------
select * 
from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
   FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
  left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
  left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
  left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
 pivot( max(  isnull(b.[ReceiverNumber],0) ) for b.BureauName in (办公室,办信处)) m 


试试。从2012年我开始回帖开始就已经能上图了
  相关解决方案