Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

lpadという関数をご存じでしょうか?

文字の左が一定数の「*(アスタリスク)」で埋められている文字列はSQLでもよく見かけると思います。

Oracle SQLでは当たり前のように使用されていますが、SQL Serverではlpadやrpadといった関数は実装されていません。

そこで今回の記事では、「SQL ServerでLPAD関数を使うにはどうすれば良いか?」について解説してみたいと思います。

LPAD関数とは

MySQLやOracle SQLではお馴染みの「文字列に指定文字を挿入するための関数」です。

LPAD関数は文字列の左側に、RPAD関数は文字列の右側に指定文字列を挿入することが出来ます。

残念な事にSQL ServerではLPAD関数、RPAD関数共に未実装なため、SQL Serverを使っている方は別の方法を模索して同じ作用を作り出すしかありません。

SQLでLPAD関数を使う

冒頭でも説明しているように、SQLにはLPAD関数はありません。

そこで、代わりに別の関数をいくつか使い、同じ作用を作り出します。

方法は次の通りです。

INSERT INTO sample_table(id, price, name) VALLUES(1, 3000, 'Beef Steak');
INSERT INTO sample_table(id, price, name) VALLUES(2, 500, 'Beer');
INSERT INTO sample_table(id, price, name) VALLUES(3, 1200, 'Cod Meunier');
INSERT INTO sample_table(id, price, name) VALLUES(4, 1500, 'Vegetable Curry');
INSERT INTO sample_table(id, price, name) VALLUES(5, 800, 'Cream soup');
INSERT INTO sample_table(id, price, name) VALLUES(6, 50, 'Watter');
INSERT INTO sample_table(id, price, name) VALLUES(7, 200, 'Bread');
INSERT INTO sample_table(id, price, name) VALLUES(8, 200, 'Rice');

SELECT id, name, age, RIGHT('***************' + CAST(age AS NVARCHAR), 10) AS LPAD FROM sample_table;

id          price       name                 LPAD
----------- ----------- -------------------- ----------
          1        3000 Beef Steak           ******3000
          2         500 Beer                 *******500
          3        1200 Cod Meunier          ******1200
          4        1500 Vegetable Curry      ******1500
          5         800 Cream soup           *******800
          6          50 Watter               ********50
          7         200 Bread                *******200
          8         200 Rice                 *******200

SQLでLPAD関数と同じ作用を作るためにはRIGHT関数とCAST関数を使います。

まずRIGHT関数の第一引数で任意の文字列を指定します。

サンプルコードでは「*(アスタリスク)」を指定しています。

次に上記で指定した文字列にCAST関数を足します。

この時、CAST関数は第一引数にアスタリスクを挿入したいカラムを指定します。

最後にRIGHT関数の第二引数に最終的な文字数を指定することで、LPAD関数と同じ作用となります。

なおRIGHT関数の第一引数で指定する文字数が、最終的に表示させたい文字数より少ない場合には文字数が揃わないことがある点に注意してください。

まとめ

いかがでしたか?

今回はSQL ServerでLPAD関数と同じ作用をいかにして作り出すかについて解説してみました。

未実装の関数と同じ作用を作り出すケースはほかにもありますので、そういった場合に柔軟に対応できるようにしっかりと学習しておきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。