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 に答える