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

sqlで文字数を調べる場合にはlen関数を使用しますが、単純に文字数を返すわけではなさそうです。

そこで今回はこのlen関数について、どういった場合にどのような結果となるのか具体的に解説してみたいと思います。

「len関数くらいなら理解できてる」と思っている方も是非一度この記事を読んでみてください。

もしかしたら今まで気づいていなかった部分があるかもしれません。

len関数とは

まず最初に、len関数についての基本的な部分を見てみましょう。

len関数とは、sqlで文字数を確認する際に使われる関数です。

sqlクエリを記述したことがあれば、一度は使ったことがある関数ですね。

言語によっては若干異なってくるものの、作用としてはどの言語でも同じような結果となります。

DBMS毎の違い
  • Access:LEN
  • SQL Server:LEN
  • Oracle:LENGTH
  • MySQL:CHAR_LENGTH、CHARACTER_LENGTH
  • PostgreSQL:LENGTH、CHAR_LENGTH、CHARACTER_LENGTH

length関数の使い方

記述方法についても至ってシンプルで、次のように記述します。

LEN([string])

lengthの記述はたったこれだけです。

“string”には確認したい文字列を指定します。

それでは実際にサンプルコードで見てみましょう。

SELECT id, name FROM sample_table;
id          name
----------- ----------
          1 Arex
          2 Jackson
          3 Mia
          4 Stella
          5 Sofia

SELECT id, name, LEN(name) AS name_length FROM sample_table;
id          name       name_length
----------- ---------- -----------
          1 Arex                 4
          2 Jackson              7
          3 Mia                  3
          4 Stella               6
          5 Sofia                5

このサンプルコードでは、LEN関数でnameの文字数を確認しています。

LEN(name)を使うことで、下の段の「name_length」にnameの文字数が表示されていることが確認できます。

※一時項目にわかりやすく項目名を付けるため、ここではASを使用しています。

LEN関数が正確に作用しないケース

文字数を確認するためのLEN関数ですが、文字数を正確に取得できないケースがあります。

この現象はサロゲート文字を含む文字列を参照する場合に起こります。

ポテパンダの一言メモ

サロゲート文字とは?

文字は通常は1文字=2Bytesですが、1文字=4Bytesとなっている文字を指します。

ペア文字とも呼ばれます。

例えば「SELECT LEN(N’𠮷’);」を実行すると通常は1と表示されるところが、2と表示されます。

テーブルを作成する際にも注意する必要がある

これも判断が難しいところですが、カラムを設定する際にデータ型をnvarcher(10)のように設定していた場合、極論を言ってしまうと、サロゲート文字なら5文字しか入らないことになります。

サロゲート文字を含むかどうかわからない場合にはカラム設定でnvarcher(MAX)としておいた方が良いでしょう。

まとめ

いかがでしたか?

今回は文字数を確認するための「len関数」について解説してみました。

sqlで直接文字列操作を行う場合には、サロゲート文字の存在を知っていないと思わぬ罠にはまってしまう可能性もありますので、注意しましょう。

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

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

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

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

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

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

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

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

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

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

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