テーブルの用意
雑ですが以下のテーブルを使います
空白になっている箇所には空文字 '' が入っています
| 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 |
こたらの記事を参考にさせていただきました











