新着情報

HOME > 開発者ブログ > intra-mart > 【備忘録:研修課題(intra-mart)】カラムに別名をつける(SQL:AS句)

【備忘録:研修課題(intra-mart)】カラムに別名をつける(SQL:AS句)

 

みなさんこんにちは!おにぎりちゃんひさしぶりの登場です!

近況としましては、最近おにぎりせんべいが社内に登場して仲間が増えました!(笑)

仲間がおいしいと言って食べてもらえるのはやはり嬉しいものですね(^u^)(笑)

 

 

さて今回はAS句を使用してカラムに別名をつける方法についてです。

 

database

 

ECサイトでは税込価格と税抜価格両方表示されているのが当たり前ですよね。

私たちが作成するECサイトでも両方の価格を表示させるということになりました。

 

しかし、データベースに存在するのは税抜価格のみ……

「税込価格」としてカラムを新しく作成し、ひとつずつ手入力していくことも考えたのですが、

ECサイトでは多くの商品を取り扱っているためとても手間がかかりますよね…

 

 

そんな悩みを抱え、今回も先輩社員に相談をさせていただいたのです。

(会話形式でご覧ください)

 

おにぎりちゃん→2974 先輩社員→laugh

 

2974「データベースに入力することなく税込価格を抽出することはできないでしょうか?」

laugh「SQL文で税抜価格に消費税をかけたものを抽出してあげればいいんだよ」

 

 

先輩社員が教えてくださったのはつまりこういうことです。

 

var sql = "SELECT price , ( price * 1.08 ) FROM product" ;

 

抽出するカラムを price , ( price * 1.08 ) と指定することで、

わざわざデータベースに税込価格を入力しておかなくても、税抜価格(price)に加えて税込価格も抽出することが可能となります。

 

しかしこのままでは税込価格にカラム名が存在しませんが、なんとか名前をつけてあげたい…!

 

2974「"( price * 1.08 )"に名前をつける方法はありませんか?

laugh「後ろに "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句等の中でも利用することもできるようですよblush

たとえば下記のように "tax_price" を利用して昇順に並び替えをしてみたりなんてこともblush

 

var sql = "SELECT price , ( price * 1.08 ) AS tax_price FROM product ORDER BY tax_price ASC" ;

 

 

 

 

今回の記事では存在しないものを取得する際に名前をつける形で利用しましたが、

元々あるカラム名に別名をつけるのに利用するほうが多いかもしれませんねblush

データベースのカラム名ではわかりづらい…というときなど、皆さんぜひ利用してみてください!!!

2017年08月01日(火)

テレマーケティングシステムsakuraトライアル

コールセンターシステム sakuraCTI

資料請求

お問合わせ

コラム

用語集

開発者ブログ

イントラマート

Sakuraテレマーケティングシステム

 

 

営業リスト

インフラソリューションのご案内

導入事例

テレアポノウハウ本プレゼントキャンペーン

認証マーク

アースリンクは
プライバシーマークを
取得しています。

プライバシーポリシー


SSLとは?

当サイトでは、実在性の証明とプライバシー 保護のためSSLサーバ証明書を使用しSSL 暗号化通信を実現しています。

このページの先頭へ