検索
連載

関数を使ってSELECT文をパワーアップさせるさらっと覚えるSQL&T-SQL入門(3)(3/3 ページ)

アプリケーション開発でデータベースを利用する新人プログラマに向けて、SQLおよびT-SQLを短期間で理解できるよう、開発現場ですぐに必要となる内容を中心に解説する。(編集部)

PC用表示
Share
Tweet
LINE
Hatena
前のページへ |       

文字列関数

 文字列関数は、文字列を操作するための関数です。文字数を数えたり、文字の一部の切り出しや置換といったことが可能です。文字を扱うという特性上、日付関数と同じく特殊な動きをする関数が含まれます。利用法をしっかり把握しておく必要がありますが、利便性が高いため、積極的に活用していきましょう。

 文字列関数には主に次のような関数が含まれます。

  • LEN       文字数カウント
  • LEFT       文字列の左端から指定文字数の切り出し
  • RIGHT      文字列の右端から指定文字数の切り出し
  • SUBSTRING   文字列から指定の範囲を抜き出す
  • LOWER     大文字をすべて小文字に変換
  • UPPER      小文字をすべて大文字に変換
  • REPLACE    指定した文字列を別の文字列に置換

 それでは、文字列関数の具体的な使い方を見ていきます。

LEN

 LEN関数は文字列の文字数をカウントするための関数です。文字列の末尾に空白が存在する場合はカウントされません。

 次の例では、商品名の文字数をカウントしています。

SELECT LEN(Name) 文字数,Name FROM Production.Product
 
文字数   Name
----------------------
18      Adjustable Raceaaa
22      All-Purpose Bike Stand
12      AWC Logo Cap

LEFT/RIGHT

 LEFT/RIGHT関数は、それぞれ文字列の左端、右端から指定の文字数分切り出した文字列を返します。

 次の例では、「abcde」という文字列の左端、右端から2文字切り出しています。

SELECT LEFT('abcde',2) 左,RIGHT('abcde',2) 右
 
左       右
-----------
ab       de

SUBSTRING

 SUBSTRING関数は、文字列から指定の範囲を抜き出すことができます。文字列端からの切り出ししか行えないLEFT/RIGHT関数に対して、よりフレキシブルな切り出しを行えます。

 次の例では、指定文字列の左端から6文字目より、2文字分の文字列を切り出しています。

SELECT SUBSTRING('1234/56/78',6,2) 月部
 
月部
--------
56

 関数を組み合わせることによって、次のような動作を実現することも可能です。次の例では文字列から指定範囲を抜き出し、さらにRIGHT関数を利用して文字の先頭をゼロで埋めています。

SELECT RIGHT('00000' + SUBSTRING('12345',4,2),5) ゼロ埋め
 
ゼロ埋め
------------
00045

LOWER/UPPER

 LOWER/UPPER関数は、ローマ字文字列を小文字化・大文字化するための関数です。

 次の例では、与えられた文字列を小文字化・大文字化しています。

SELECT LOWER('AbcdE') 小文字化,UPPER('aBCDe') 大文字化
 
小文字化  大文字化
------------------
abcde     ABCDE

REPLACE

 REPLACE関数は、指定した文字列を別の文字列で置換するための関数です。

 次の例では、「ab」という文字列を「xx」に置換しています。

SELECT REPLACE('abcdeab','ab','xx') 文字列置換
 
文字列置換
------------
xxcdexx

 文字列関数は組み合わせて使用することにより、非常に多様な処理を行えます。文字列の先頭を大文字化、切り出した文字列を利用した文字列置換など、さまざまな形で利用できます。文字列の処理で困ったときには、文字列関数で処理できないか考えてみましょう。

まとめ

 SQLで利用可能な関数は非常に種類が多く、一度にすべてを把握することは困難です。しかしながら、利用するとしないでは、大きな差があるため、目的の処理が関数化されていないか調べることが大切です。また、組み合わせによってさらに処理の幅が広がるため、使い方次第では面倒な処理を一気に解決することも可能です。

 関数はデータの効率的な利用を助けるため、積極的に活用しその利用法をマスターしておきましょう。


 次回は、データの並べ替えやグループ化を取り上げます。お楽しみに!(次回へ続く)

筆者プロフィール

石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005を使いこなそう」「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る