テーブルの用意
雑ですが以下のテーブルを使います
空白になっている箇所には空文字 '' が入っています
id | name | age |
---|---|---|
1 | taro | 32 |
2 | jiro | 30 |
3 | saburo | 28 |
4 | shiro | 26 |
5 | 55 | |
6 | 40 | |
7 | null | null |
8 | null | 10 |
NULLと空文字を除いたレコード数を算出するSQL
SELECT sum(CASE coalesce(name, '') WHEN '' THEN 0 ELSE 1 END) FROM staff
結果は
sum |
---|
4 |
はてなブログのテーブルの表示の関係で少し見辛いでくてすいません
4件なのであっていますね
NULLと空文字を除いたレコードを抽出してSELECT文で何かしたい
そういったケースでは where 句で絞ります
SELECT name, id, age FROM staff WHERE (CASE coalesce(name, '') WHEN '' THEN 0 ELSE 1 END) <> 0
結果は
id | name | age |
---|---|---|
1 | taro | 32 |
2 | jiro | 30 |
3 | saburo | 28 |
4 | shiro | 26 |
こたらの記事を参考にさせていただきました