我在SQLserver 2008中使用以下语法运行一个Pivot查询,以了解表名tbInflowMaster中列名'PrevalidationStatus'的计数。我得到了答案,但
计数为空值未来。对于null显示为0 ..我希望在查询中的未处理字段中将Null值计为未处理。请帮助我
我写了下面的查询,它适用于所有文件但不适用于null
SELECT BuyerName, [Completed] AS Completed, [WIP]
AS
WIP, [Closed] AS Closed , ['NULL'] AS NotProcessd FROM (
SELECT BuyerName,PrevalidationStatus FROM tbInflowMaster) ps
PIVOT(Count (PrevalidationStatus) FOR PrevalidationStatus IN
( [Completed], [WIP], [Closed], ['NULL']))
AS pvt
我输出如下:
BuyerName Completed WIP Closed NotProcessed
aniruddha.gupta 1 0 0 0
jintu.job 98 7 1 0
jashin 130 10 31 0
syed.sofi 76 6 44 0
seena.lijosh 260 31 0 0
deepak.khatua 55 6 3 0
tuhin.choudhury 144 0 1 0
shwetha.laxmi 133 5 5 0
我的表'tbInflowMaster'如下所示(例如我已经显示了一些数据):
BuyerName PrevalidationStatus
seena.lijosh Completed
tuhin.choudhury Completed
tuhin.choudhury NULL
tuhin.choudhury Completed
jashin Completed
tuhin.choudhury Completed
tuhin.choudhury Null
我的桌子'tbInflowMaster'
答案 0 :(得分:2)
您只需要将NULL
值替换为“字符串表示形式”。
试试这个:
SELECT BuyerName, [Completed] AS Completed, [WIP]
AS
WIP, [Closed] AS Closed , [NULL] AS NotProcessd FROM (
SELECT BuyerName, isnull(PrevalidationStatus, 'NULL') [PrevalidationStatus] FROM tbInflowMaster) ps
PIVOT(Count (PrevalidationStatus) FOR PrevalidationStatus IN
( [Completed], [WIP], [Closed], [NULL]))
AS pvt