【PostgreSQL】抽出するデータにCASE式でコメントを付けてみた

こんにちは。篠原です。
 
最近の業務でSQLを使用することが多いため、最近使って面白いなと感じた、抽出するデータにCASE式でコメントを付ける方法についてご紹介します。
 

CASE式を使って、条件に合わせたコメントを表示させることができます。例えば、補正するデータが、どんな理由で問題があるのかを表示させることができます。
 
今回は、CASE式の条件に当てはまったデータに、特定のコメントを追加する方法をご紹介します。

環境

使用した環境は以下の通りです。

PostgreSQL
11.15

CASE式について

SQLのCASE式は、Javaなどの『if/else』のような条件式に当てはまるものです。汎用性の高い使い方ができるので、今回の記事で基礎的なことを覚えて応用できるようになりたいですね。
 
書き方の例としては以下となります。

CASE WHEN 条件1 THEN 値1
ELSE 値2 END AS 列名   --『END』は必須。『AS 列名』はなくてもOK

ちなみに、ELSEの前に『 WHEN 条件 THEN 値』を増やすことで条件をいくつでも追加していくことができます。

今回やりたいこと

ここで抽出の例として、設定を日常の場面に置き換えてご紹介します。

『よし、レンタルショップに映画借りに行こう!』
絶対条件:映画見たいけどお金ないから安く借りれるもの(3ドル以下)を見たい
希望条件:できれば短くてサクッとみれるものがあればいいな

という感じです。まず絶対条件で選ぶ映画の範囲を絞って、希望条件でコメントを表示させて選ぶ際のヒントを付け加えてあげます。
 
ドル表記にしてるのはただの外国かぶれなので気にしないでください。

絶対条件のSQL

まずは絶対に譲れない条件で絞ったSQLを書いていきます。

SELECT
	title
	,release_year
	,language_id
	,length
	,rental_rate
	,rental_duration
FROM
	film
WHERE
	rental_rate < '3.00';

これで3ドル以上の高級映画はSELECTされなくなりましたね。
 

希望条件に沿ったものに特定のコメントを付ける

データにテキスト型のカラムを付け加え、特定のコメントが出るようにします。

SELECT
	title
	,release_year
	,language_id
	,length
	,rental_rate
	,rental_duration
	,CASE 
		WHEN length < '100' THEN '短いし借りてみよう!'
		ELSE '長いから余裕あるときに見る'
		END AS コメント
FROM
	film
WHERE
	rental_rate < '3.00';

はい、ということでデータの中にコメントが入ったことで非常に作品選びがしやすくなったんじゃないでしょうか。
 

まとめ

いかがだったでしょうか。
 
SELECTしたデータの中でも、例外などが存在する場合には、こうしてコメントでメモを付け加えると非常に便利です。ぜひ使ってみてください。
 
 
 
 
《関連記事》

外部結合と内部結合の違い
技術
2021.9.17(Fri)

理解するポイントはここ! 外部結合と内部結合の違いを図で説明してみた

#データベース#SQL
 

運用、監視で役立つSQL
技術
2020.7.28(Tue)

PostgreSQLの運用で押さえておきたい! 運用、監視で役立つSQL

#SQL
 

PostgreSQLのUNION
技術
2022.7.20(Wed)

PostgreSQLで検索結果を結合する! UNIONを使ってみた

#SQL
 

記事をシェア
MOST VIEWED ARTICLES