データをフィルタリングするための SQL WHERE 句

データをフィルタリングするための SQL WHERE 句

このチュートリアルでは、 SQL WHERE句とは何か、およびその使用方法について説明します。AND演算子とOR演算子を使用した複数の条件についても説明します。 

SQL のWHERE句は、データまたはレコードをフィルタリングするために使用されます。必要なレコードのみを抽出する条件を作成するために使用されます。 

SELECTステートメントでWHERE句を使用する以外に、 UPDATEDELETE、およびその他のSQLステートメントでも使用できます。ただし、このチュートリアルでは、 SELECTステートメントでのみ使用します。

目次

SQL WHERE 句を使用した単純な選択

SELECTステートメントでWHERE句を使用しないと、特定のテーブルからすべての行が返されます。

データをフィルタリングするための SQL WHERE 句

この例では、ガジェットカテゴリのデータのみを取得したいと考えています。

データをフィルタリングするための SQL WHERE 句


したがって、WHERE句を使用して結果を制限する必要があります。この例では、 Category列をチェックし、 Category がGadgetsの場合にのみレコードを返すという条件を作成しました。

データをフィルタリングするための SQL WHERE 句

文字列を使用する場合は、一重引用符 ( ' )で囲む必要があることに注意してください。 

数値または整数を使用する場合、一重引用符を使用する必要はありません。たとえば、価格が 30 以下のレコードを取得したいとします。

したがって、 Price列をチェックして 30 または 30 未満の値を持つ行を返すクエリを作成するだけです。ご覧のとおり、数値を一重引用符で囲みませんでした。整数。

データをフィルタリングするための SQL WHERE 句

AND 演算子を使用した SQL WHERE 句

複数の列に対してWHERE句をAND演算子やOR演算子と組み合わせて使用​​することもできます。

AND演算子は、両方の条件がTRUEの場合に機能します。したがって、複数の条件がTRUEであるレコードを取得するために使用されます。

たとえば、このシナリオでは、メーカーが GizmoWorks で、価格が 20 未満であるレコードが必要です。  

データをフィルタリングするための SQL WHERE 句

図に示すように、WHERE句とAND演算子を使用して複数の条件を作成しました。

データをフィルタリングするための SQL WHERE 句

私たちのテーブルには、GizmoWorks メーカーの行が 2 つあります。ただし、2 行目の価格は 20 を超えています。したがって、結果は、設定した 2 つの条件に対して true を返す行のみを返します。 

データをフィルタリングするための SQL WHERE 句

OR 演算子を使用したSQL WHERE 句

OR演算子は、いずれかの条件が true の場合にレコードを返すことを意味します。したがって、AND が条件の両方またはすべてが true であるレコードのみを返す場合、OR演算子を使用すると、1 つの条件のみが true を返す場合でもレコードが返されます。 

たとえば、製品名がSingleTouchまたはMultiTouchであるレコードをフェッチするとします。

データをフィルタリングするための SQL WHERE 句

ProductテーブルのPName列をチェックするクエリを作成するだけです。このクエリでは、WHERE句とOR演算子を使用して、設定された条件のいずれかに準拠する行を返しました。

データをフィルタリングするための SQL WHERE 句

SSMS での WHERE 句の使用

SSMSWHERE 句を使用してみましょう。ここでは、Microsoft の AdventureWorks2012 という名前のサンプル データベースを使用しています。このチュートリアルに従うことで、これを設定する方法を学ぶことができます。 

この例では、 SalesOrderHeaderテーブルの下のレコードをフェッチします。

データをフィルタリングするための SQL WHERE 句

SSMSでこのクエリを実行するには、それを強調表示して実行ボタンをクリックするだけです。

データをフィルタリングするための SQL WHERE 句

WHERE句を使用しないと、このテーブルの下にあるすべてのレコードが返されます。ご覧のとおり、31,465 行が返されました。

データをフィルタリングするための SQL WHERE 句

これらのレコードをフィルタリングして、 TerritoryIDが5 の行のみを返したいとします。そこで、ここでWHERE句を使用してその条件を作成しましょう。

データをフィルタリングするための SQL WHERE 句

このクエリを実行すると、31,465 行ではなく 486 行が返されるようになります。これは、 TerritoryID5のみを持つレコードにフィルターが適用されたためです。

データをフィルタリングするための SQL WHERE 句

現時点では、まだそのテーブルからすべての列を取得しています。表示したい列を指定して列を制限することもできます。

*を特定の列名に変更してクエリを実行する だけです。

データをフィルタリングするための SQL WHERE 句

同じ行数で設定した特定の列が表示されます。 

データをフィルタリングするための SQL WHERE 句

次に、文字列値を指定してWHERE句を使用してみましょう。たとえば、PurchaseOrderNumber列の値P014123169936に基づいてレコードを制限したいとします。この値には文字が含まれているため、多くの数値が含まれている場合でも文字列とみなされます。

データをフィルタリングするための SQL WHERE 句

文字列値を使用する場合は、値を一重引用符で囲む必要があることに注意してください。一重引用符を使用しないと、エラーがあることを示す赤い線が表示されます。

データをフィルタリングするための SQL WHERE 句

結果は 1 行のみになります。これは、設定した発注番号を含むデータが 1 つだけであることを意味します。

データをフィルタリングするための SQL WHERE 句

AND 演算子を使用した WHERE 句とキーワードによる並べ替え

特定の注文日を持つレコードを選択する別のフィルターを用意してみましょう。この例では、注文日が「 2014-01-01 」以上、「 2014-03-31 」以下であるレコードのみを選択します。

データをフィルタリングするための SQL WHERE 句

ここでOrder Byキーワードを使用することもできます。この例では、これをOrderDateの降順で並べ替えます。

データをフィルタリングするための SQL WHERE 句

結果には、設定した 2 つの条件を満たすレコードのみが表示されます。

データをフィルタリングするための SQL WHERE 句

BETWEEN演算子を使用してそのクエリを再作成することもできます。BETWEEN演算子は、指定された範囲内の値を選択します。したがって、この方法で実行しても同じ結果が得られます。 

データをフィルタリングするための SQL WHERE 句

複数の条件に対する OR 演算子を使用した WHERE 句

この例では、OR演算子を使用した複数の条件があります。テリトリー ID として 5、6、または 7 のいずれかの行を選択したいと考えています。

データをフィルタリングするための SQL WHERE 句

結果には、設定した条件のいずれかを満たすすべてのレコードが表示されます。この例では、7,225 行が返されました。

データをフィルタリングするための SQL WHERE 句

WHERE 句での関数の使用

WHERE句で関数を使用することもできます。たとえば、OrderDate列の日付値を手動で入力する代わりに、 YEAR関数を使用して、注文日が 2014 年のすべてのレコードを自動的に取得できます。 

データをフィルタリングするための SQL WHERE 句

その結果、2014 年の記録となる 11,761 行が得られました。

データをフィルタリングするための SQL WHERE 句

LuckyTemplates ユーザーのための SQL – 新しい LuckyTemplates コース
クエリの折りたたみと SQL Server への接続

結論

要約すると、 SELECTステートメントでWHERE句を使用する方法を学習しました。繰り返しますが、 UPDATEDELETE、およびその他のSQLステートメントでも使用できます。また、 AND演算子とOR演算子を使用して複数の条件を作成する方法も学びました。

さらに、値の範囲から選択するためのBETWEEN演算子の使用法を学びました。YEAR関数などの関数でWHERE句を使用することもできます。WHERE句を使用することは、必要なレコードをフィルタリングするために非常に重要です。必要のない不要なデータを除外するには、クエリによって返されるレコードを減らす必要があります。 

ではごきげんよう、

ハーフィズ


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。