SQL如何查询某行空值列的数量?
比如有ABCD四个字段ABCD1NULL2NULL3NULL57上面两行的返回值分别是2和1有简单的办法加分啊...
比如有ABCD四个字段
A B C D
1 NULL 2 NULL
3 NULL 5 7
上面两行的返回值分别是 2和1
有简单的办法加分啊 展开
A B C D
1 NULL 2 NULL
3 NULL 5 7
上面两行的返回值分别是 2和1
有简单的办法加分啊 展开
4个回答
展开全部
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)
展开全部
那你那个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
--我用明细显示的 如果不符合你的要求再提
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A is null and B is null from Table
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |