我有表TestTable,其中我有几列说
C1 | C2 | C3 | c4
'ab'| 1 | 09 | //CASE1 [ must return 1]
| | | //CASE2 [ must return 0]
如果有任何列数据,我想检查该表中的数据是否存在我希望我的值为1,如果所有列都为空(无数据)那么我希望我的值为0
任何人都可以提供帮助,我不知道在我面前有这种情况。
答案 0 :(得分:6)
您可以使用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