SELECT文で取得した結果に対して、演算子を使うことで文字列結合や計算が可能です。
これを使うことで、DBから抜き出してきたデータを他人に見せる時の加工が用意になります。
また、プログラムで実装していたロジックをSQL文に組み込むことが可能になりますし、副問い合わせで使用すれば「抽出→抽出結果をプログラムで加工→加工した結果を用いて再度抽出」としていたものを1つのSQL文にまとめることもできます。
【文法】
・文字列結合
演算子「||」を用いることで前後の文字列の結合が可能。
例えば、「商品名||’_特価品’」とすれば、商品名の取得結果の後ろに「_特価品」という文字列を追加し出力することができる。
・計算
算術演算子(+,-,*,/,%)を用いることで取得結果の計算が可能。
例えば、「売値 * 0.8」とすれば、売値の取得結果について0.8をかけた値を出力することができる。
【対象テーブル例】
・商品
1 2 3 4 5 6 7 |
+--------+--------+------+ | 商品ID | 商品名 | 価格 | +--------+--------+------+ | 1 | 商品1 | 100 | | 2 | 商品2 | 200 | | 3 | 商品3 | 300 | +--------+--------+------+ |
【取得例】
※ASは省略可能
1 2 3 4 |
SELECT 商品名||'_特価品' AS 特価商品名, 売値 * 0.8 AS 特価価格 FROM 商品 ORDER BY 商品ID; |
↓
1 2 3 4 5 6 7 |
+----------------+----------+ | 特化商品名 | 特価価格 | +----------------+----------+ | 商品1_特価品 | 80 | | 商品2_特価品 | 160 | | 商品3_特価品 | 240 | +----------------+----------+ |
いかがでしたでしょうか。
SQLのSELECT文で取得した結果を加工できるのは意外だったかもしれませんが、特に日々の保守運用作業が容易になるメリットが大きいので、覚えておいて損は無い文法です。
なお、取得した結果を加工する代表的な方法としては、CASE文もあります。
こちらについては次回の記事で紹介したいと思います!
コメント