SQL如何查询某行空值列的数量?

比如有ABCD四个字段ABCD1NULL2NULL3NULL57上面两行的返回值分别是2和1有简单的办法加分啊... 比如有ABCD四个字段
A B C D
1 NULL 2 NULL
3 NULL 5 7

上面两行的返回值分别是 2和1
有简单的办法加分啊
展开
 我来答
seesea2517
2013-05-24 · TA获得超过1480个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:553万
展开全部

1

mysql 的话就如下,也没啥简单的办法:

select isnull(A)+isnull(B)+isnull(C)+isnull(D)
from 表

测试结果:
mysql> select * from tbTest;
+---+------+------+------+
| a | b    | c    | d    |
+---+------+------+------+
| 1 | NULL |    2 | NULL |
| 3 | NULL |    5 |    7 |
+---+------+------+------+
2 rows in set (0.00 sec)

mysql> select isnull(A)+isnull(B)+isnull(C)+isnull(D)
    -> from tbTest;
+-----------------------------------------+
| isnull(A)+isnull(B)+isnull(C)+isnull(D) |
+-----------------------------------------+
|                                       2 |
|                                       1 |
+-----------------------------------------+
2 rows in set (0.03 sec)
17号观察室
2013-05-24 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1351万
展开全部
那你那个b字段 怎么显示 是一个2 还是两个1
--我用明细显示的 如果不符合你的要求再提
select a,case when b IS not null then b else '1' end b,c,case when d IS not null then d else '1' end d from tt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twvampire
2013-05-24 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2979万
展开全部
CREATE TABLE test(A INT,
B INT,
C INT,
D INT)

SELECT (CASE WHEN ISNULL(a,0)>0 THEN 0 ELSE 1 END) +
(CASE WHEN ISNULL(b,0)>0 THEN 0 ELSE 1 END) +
(CASE WHEN ISNULL(c,0)>0 THEN 0 ELSE 1 END)+
(CASE WHEN ISNULL(d,0)>0 THEN 0 ELSE 1 END)
FROM TEST
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
7511875ok8
2013-05-24
知道答主
回答量:6
采纳率:0%
帮助的人:9015
展开全部
select A is null and B is null from Table
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式