連載
» 2007年03月19日 00時00分 公開

あっという間に分かるSELECT文の書き方さらっと覚えるSQL&T-SQL入門(2)(3/3 ページ)

[石橋潤一,株式会社システムインテグレータ]
前のページへ 1|2|3       

さまざまな条件句の利用

(1)Likeによるパターンマッチング

 特定の文字列が含まれるデータを絞り込みたい、というような場合には「Like」句を利用します。Like句は「%(パーセント)」や「_(アンダースコア)」といったワイルドカードを利用することにより、さまざまな条件で文字列を絞り込めます。ワイルドカードにはいくつか種類があり、その応用範囲は広いため、ここでは代表的な「%」と「_」を取り上げます。

  • %  0個以上の文字列で構成される任意の文字列
  • _  任意の1文字

 次の例では、Name列にBallという文字列を含む行、LLという文字列で始まる行、Decal +任意の1文字を含む行のいずれか、という条件で絞り込んでいます。

SELECT ProductID,Name
FROM Production.Product
WHERE Name Like '%Ball%' OR Name Like 'LL%'
OR Name Like 'Decal _'

(2)BETWEENによる範囲指定

 「BETWEEN」句を利用することにより、2つの値の間に含まれるデータを絞り込めます。次の例では、ReorderPointが600以上800以下である行を取得しています。

SELECT ProductID,Name,ReorderPoint
FROM Production.Product
WHERE ReorderPoint BETWEEN 600 AND 800

 BETWEEN句は以上(>=)以下(<=)、という範囲指定であることに注意してください。次のような形で条件を指定した場合、BETWEEN句による結果とは一致しません。

SELECT ProductID,Name,ReorderPoint
FROM Production.Product
WHERE ReorderPoint > 600 AND ReorderPoint < 800

(3)INによる複数値との比較

 「IN」句は指定の値リストの中に含まれるデータを絞り込みます。次の例では、Color列にBlackもしくはSilverが含まれる行を絞り込みます。

SELECT ProductID,Name,Color
FROM Production.Product
WHERE Color IN ('Black','Silver')

 OR句を利用することで同様の条件を実現することが可能ですが、複数の値と比較する必要がある場合は、IN句を使った方がより短くクエリを書くことができます。


 今回はSELECT文の基本を取り上げました。ここで取り上げたものだけでも、さまざまな形で応用することが可能です。サンプルデータベースなどを利用して、それぞれの動きを入念に確認しておいてください。

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

筆者プロフィール

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



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。