2017.8.1
みなさんこんにちは!おにぎりちゃんひさしぶりの登場です!
近況としましては、最近おにぎりせんべいが社内に登場して仲間が増えました!(笑)
仲間がおいしいと言って食べてもらえるのはやはり嬉しいものですね(^u^)(笑)
さて今回はAS句を使用してカラムに別名をつける方法についてです。
ECサイトでは税込価格と税抜価格両方表示されているのが当たり前ですよね。
私たちが作成するECサイトでも両方の価格を表示させるということになりました。
しかし、データベースに存在するのは税抜価格のみ……
「税込価格」としてカラムを新しく作成し、ひとつずつ手入力していくことも考えたのですが、
ECサイトでは多くの商品を取り扱っているためとても手間がかかりますよね…
そんな悩みを抱え、今回も先輩社員に相談をさせていただいたのです。
(会話形式でご覧ください)
「データベースに入力することなく税込価格を抽出することはできないでしょうか?」
「SQL文で税抜価格に消費税をかけたものを抽出してあげればいいんだよ」
先輩社員が教えてくださったのはつまりこういうことです。
var sql = "SELECT price , ( price * 1.08 ) FROM product" ;
抽出するカラムを price , ( price * 1.08 ) と指定することで、
わざわざデータベースに税込価格を入力しておかなくても、税抜価格(price)に加えて税込価格も抽出することが可能となります。
しかしこのままでは税込価格にカラム名が存在しませんが、なんとか名前をつけてあげたい…!
「”( price * 1.08 )”に名前をつける方法はありませんか?」
「後ろに “AS” をつけると名前をつけることができるよ」
でましたーー!!ここでAS句が登場するのです!
それでは先程のSQL文でAS句を利用してみましょう。
var sql = "SELECT price , ( price * 1.08 ) AS tax_price FROM product" ;
教えていただいた通り ( price * 1.08 ) の後ろに AS tax_price と追加してあげることで
税込価格には “tax_price” というカラム名を付けることができます。
でも実は列別名をつけたいカラムの後ろに半角スペースをいれるだけでカラム名の変更ができてしまうみたいです…
こんな感じで↓
var sql = "SELECT price , ( price * 1.08 ) tax_price FROM product" ;
私個人的な意見としては、ASがいてくれると列別名がついているなと一目でわかるのでありがたい気がします。
さらに変更したカラム名はORDER BY句等の中でも利用することもできるようですよ
たとえば下記のように “tax_price” を利用して昇順に並び替えをしてみたりなんてことも
var sql = "SELECT price , ( price * 1.08 ) AS tax_price FROM product ORDER BY tax_price ASC" ;
今回の記事では存在しないものを取得する際に名前をつける形で利用しましたが、
元々あるカラム名に別名をつけるのに利用するほうが多いかもしれませんね!
データベースのカラム名ではわかりづらい…というときなど、皆さんぜひ利用してみてください!!!