我有表 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/