如何获取null而不是0 [英] How to retrive null instead of 0

查看:74
本文介绍了如何获取null而不是0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面的代码中,当没有值时,检索到0,但我的要求是NULL.有没有可能?请回复我.

In the following code, when there is no value, 0 is retrieved but my requirement is to be NULL . any possibility? please reply me.

SELECT        ntblDesignation.DisigantionName, ISNULL(COUNT(CASE WHEN tblConnectivity.intWANid = '1' THEN tblConnectivity.intWANid END), NULL) AS VirtualPinNetwork, 
                         ISNULL(COUNT(CASE WHEN tblConnectivity.intWANid = '2' THEN tblConnectivity.intWANid END), NULL) AS LeasedLine, 
                         ISNULL(COUNT(CASE WHEN tblConnectivity.intWANid = '3' THEN tblConnectivity.intWANid END), NULL) AS APN, 
                         ISNULL(COUNT(CASE WHEN tblConnectivity.intWANid = '4' THEN tblConnectivity.intWANid END), NULL) AS Others
FROM            tblConnectivity INNER JOIN
                         ntblDistrict ON tblConnectivity.intDistrictid = ntblDistrict.intDistrictid INNER JOIN
                         ntblDesignation ON tblConnectivity.intDesignation = ntblDesignation.intDesiginationID

GROUP BY ntblDesignation.DisigantionName


干杯,
ramu.


Cheers,
ramu.

推荐答案

计数永远不会为null,而是为0.因此,您要做的是编写将0转换为null的代码.因此,请使用大小写将0转换为null.
A count is never null, it is 0. So what you want to do, is write code to convert 0 in to null. So use a case to convert 0 to null.


SELECT
ntblDesignation.DisigantionName,
(Case when (Select count(1) from  tblConnectivity where intWANid = '1')>0 THEN Count(1) else null END) AS VirtualPinNetwork,
(Case when (Select count(1) from  tblConnectivity where intWANid = '2')>0  THEN Count(1) else null END) AS LeasedLine,
(Case when (Select count(1) from  tblConnectivity where intWANid = '3')>0 THEN Count(1) else null END) AS  APN,
(Case when (Select count(1) from  tblConnectivity where intWANid = '3')>0 THEN Count(1) else null END) AS Others
FROM            tblConnectivity INNER JOIN
                         ntblDistrict ON tblConnectivity.intDistrictid = ntblDistrict.intDistrictid INNER JOIN
                         ntblDesignation ON tblConnectivity.intDesignation = ntblDesignation.intDesiginationID

GROUP BY ntblDesignation.DisigantionName


这篇关于如何获取null而不是0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆