我有表 TestTable ,我有几列说

            C1  | C2 | C3 | c4
            'ab'|  1 | 09 |          //CASE1 [ must return 1]
                |    |    |          //CASE2 [ must return 0]

如果存在任何列数据,我想检查该表中是否存在数据,我希望我的值为 1,如果所有列都为空(无数据),则我希望我的值为 0

任何人都可以提供帮助,我不知道在我面前期待这种情况。

最佳答案

您可以尝试使用 COALESCE 命令进行以下查询:

SELECT CASE WHEN COALESCE(C1,C2,C3,C4) IS NULL THEN 0 ELSE 1 END
FROM TestTable

如果空白值实际上不是 NULL 而是空字符串,则查询可以更改为:
SELECT CASE WHEN C1+C2+C3+C4 = '' THEN 0 ELSE 1 END
FROM TestTable

或者,可能是检查 NULL 和空字符串的最佳变体:
SELECT CASE WHEN COALESCE(C1,'')+COALESCE(C2,'')+COALESCE(C3,'')+COALESCE(C4,'') = '' THEN 0 ELSE 1 END
FROM TestTable

关于sql - 在 SQL 中检查表列中数据的可用性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17723508/

10-13 08:46