我在表中有四列和一行;我想使用SQL查询来返回一个数字(0-4),标识第一列(从左到右)为空或空。 例如,如果列1,2和3包含数据,则查询将返回“4”。 如果第1列和第4列包含数据,则查询将返回“2”。 如果没有列包含数据,则结果应为“1”。 如果他们都包含数据,那么“0” 是否有合乎逻辑的解决方案,所有16个组合都不需要明确测试每种可能性?用于查找4列数组中空列位置的SQL查询
0
A
回答
5
select case
when a is null then 1
when b is null then 2
when c is null then 3
when d is null then 4
else 0 end as FirstNull
from sometable
2
真的没什么简单的(你正在寻找一种双聚结):
您可以使用搜索的情况下,虽然:
SELECT
CASE
WHEN col1 IS NULL THEN 1
WHEN col2 IS NULL then 2
WHEN col3 IS NULL then 3
WHEN col4 IS NULL then 4
ELSE 0
END
0
要在检查所有16种组合一次,使用此:
SELECT (IF(a IS NULL, 8, 0)
+ IF(b IS NULL, 4, 0)
+ IF(c IS NULL, 2, 0)
+ IF(d IS NULL, 1, 0)
) AS fullcheck --takes values from 0 to 15
FROM yourTable
;
列fullcheck
将是15,如果所有四个字段不为空, 如果全部都有数据。
相关问题
- 1. 用于查找数组中数字列表的最近元素的SQL查询
- 2. SQL查询来查找列
- 3. 用于查找列中匹配文本的列名的SQL查询
- 4. SQL查找非空列
- 5. 用于查找值系列长度的SQL查询
- 6. SQL查询找到新列
- 7. 用于检查表列中值的SQL的SQL查询
- 8. 删除SQL查询中的空列
- 9. SQL查询基于序列
- 10. 简化SQL列查找查询
- 11. 查找列表中元素的位置
- 12. 查找gen列表中SNP的位置
- 13. 查找列表中的位置,
- 14. SQL位置查询
- 15. 用于比较2列的SQL查询
- 16. 用于多列查询的SQL COUNT UNION
- 17. SQL查询从表中查找多个列值的计数?
- 18. 用于查找列中未使用的第一个值的SQL查询
- 19. 用于在列中查找组合的SQL
- 20. SQL计数查询与多列分组
- 21. 用于查找包含我的模式中的列的表的SQL查询
- 22. 用于查询的mysql小数位置
- 23. 基于Django中列的组合查询
- 24. 用于在sql中查找所有全零值的列的查询是什么?
- 25. 在子查询中选择列的位置是否为空
- 26. 阵列对于RouterLink查询是空的 - Jasmine/md素材4
- 27. 如何使用PL/SQL查找表中的空列数
- 28. 带有列的SQL查询或查看取决于SELECT查询
- 29. SQL查询用于到单个列
- 30. POSTGRES SQL查询找到所有有一列的行包含数字格式如11位数字 - 4位数
您使用的是什么RDBMS?你如何得到16种组合?只有5个可能的结果。 – RichardTheKiwi 2011-03-30 18:25:05
你的逻辑对我来说毫无意义......如果1,2和3然后是4;如果1&4然后2,如果没有那么1,如果所有然后0?如何识别第一列为空或空的列。 – 2011-03-30 18:33:33