技術とか戦略とか

証券レガシーシステムを8年間いじった普通のSEによるブログ。技術のみではなく趣味の戦略考察についても。PCから見た方が色々見やすいと思います。

情報処理技術者試験対策「SQL(取得結果に対する演算子の利用)」

SELECT文で取得した結果に対して、演算子を使うことで文字列結合や計算が可能です。
これを使うことで、プログラムで実装していたロジックをSQL文に組み込むことが可能になりますし、副問い合わせで使用すれば「抽出→抽出結果をプログラムで加工→加工した結果を用いて再度抽出」としていたものを1つのSQL文にまとめることもできます。
 
【文法】

  • 文字列結合
    演算子「||」を用いることで前後の文字列の結合が可能。
    例えば、「商品名||'_特価品'」とすれば、商品名の取得結果の後ろに「_特価品」という文字列を追加し出力することができる。
  • 計算
    算術演算子(+,-,*,/,%)を用いることで取得結果の計算が可能。
    例えば、「売値 * 0.8」とすれば、売値の取得結果について0.8をかけた値を出力することができる。
     

【対象テーブル例】
商品
+--------+--------+------+
| 商品ID | 商品名 | 価格 |
+--------+--------+------+
| 1      | 商品1 | 100  |
| 2      | 商品2 | 200  |
| 3      | 商品3 | 300  |
+--------+--------+------+
 
【取得例】
※ASは省略可能
 
SELECT   商品名||'_特価品' AS 特価商品名,
         売値 * 0.8 AS 特価価格
FROM     商品
ORDER BY 商品ID;

+----------------+----------+
| 特化商品名     | 特価価格 |
+----------------+----------+
| 商品1_特価品 | 80       |
| 商品2_特価品 | 160      |
| 商品3_特価品 | 240      |
+----------------+----------+
 
---------------------
目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM