特定の文字列が含まれるデータを絞り込みたい、というような場合には「Like」句を利用します。Like句は「%(パーセント)」や「_(アンダースコア)」といったワイルドカードを利用することにより、さまざまな条件で文字列を絞り込めます。ワイルドカードにはいくつか種類があり、その応用範囲は広いため、ここでは代表的な「%」と「_」を取り上げます。
次の例では、Name列にBallという文字列を含む行、LLという文字列で始まる行、Decal +任意の1文字を含む行のいずれか、という条件で絞り込んでいます。
SELECT ProductID,Name FROM Production.Product WHERE Name Like '%Ball%' OR Name Like 'LL%' OR Name Like 'Decal _' |
「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 |
「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アプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.