3

我有表 TestTable 我有几列说

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

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

任何人都可以帮忙,我不知道在我面前会出现这种情况。

4

1 回答 1

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
于 2013-07-18T12:34:31.417 回答