IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

このブログでは、SQL でフィルタリングする方法について説明します。IN、NOT IN、LIKENOT LIKEなどのフィルター条件を利用した例をいくつか示して説明します。

これらのフィルタリング条件は、データからの出力をフィルタリングするために使用されます。複数行のコマンドを使用してそれらを選択するよりも、データに簡単にアクセスできます。

目次

IN 演算子と NOT IN 演算子を使用して SQL でデータをフィルタリングする

この例では、ID 1、5、または 7 からデータを取得します。ほとんどの人はOR 条件を使用します。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

より多くの ID からデータを取得したい場合は、複数の OR 条件を記述する必要があります。ただし、OR 条件を何度も使用する代わりに、 IN 演算子を使用すると、必要なデータを取得できます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

このフィルタリング条件を使用すると、ID 1、5、または 7 のデータである同じ出力が得られます。逆に、ID 1、5、および 7 以外のすべてのデータを抽出したい場合は、次のようにします。OR 条件と<> (NOT EQUAL 演算子)を使用する可能性があります

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

長いコマンドを記述する代わりに、NOT IN 演算子を使用できます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

このフィルタリング条件を使用して、ID 1、5、および 7 を除くデータを抽出します。

これらの条件を使用すると、時間を大幅に節約できると同時に、複数のOR 条件を使用するよりもはるかに優れた記述方法になります。

LIKE 演算子と NOT LIKE 演算子を使用して SQL でデータをフィルタリングする

LIKENOT LIKE は、IN演算子と NOT IN 演算子に似ています。データ自体を抽出する代わりに、文字列の一部を取得します。ワイルドカードや、パーセント (%) やアンダースコア (_) などの特殊文字も使用できることに注意してください。

%は、指定された文字列を持つすべてのレコードと一致することを意味します。86 と % を一致させる場合、最初の 2 桁は 86 になるはずです。したがって、86 で始まる値が検索されます。

ただし、 86 の両側に% を配置すると、どこからでも取得できます。それは最初から、最後から、または途中から発生する可能性があります。したがって、先頭、中間、または末尾に 86 を含む値が検索されます。 

一方、_ は1 文字のみと一致します。86 と_ (86_)を使用すると、860、861、862 など、1 番目と 2 番目の位置に 86 が含まれる値が検索されます。_ と 86 (_86) を使用すると、2 番目と 3 番目の位置に 86 が含まれる値が検索されます。 

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

この例では、LIKE 演算子を使用して、文字列Markを含むデータを取得します。Markを含む出力を得るには、% の間にMarkを置くだけです。 

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

同様に、 Markを含むデータを抽出したくない場合は、 NOT LIKE 演算子を使用できます。次に、 %の間にマークを入れます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

今回の出力にはMark は含まれません。

SSMS での SQL フィルター条件の使用

まず、 SSMS (SQL Server Management Studio)を開きます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、使用するテーブルをロードします。使用しているデータベースは Adventureworks2012 であることに注意してください。これはMicrosoft ドキュメント Web サイトにあります。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、「実行」をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

その後、[結果] タブに出力が表示されます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、 PersonTypeに基づいて出力をフィルタリングします。select uniqueコマンドを使用します。コマンドを強調表示し、[実行]をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、 PersonType を示す出力が表示されます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、 PersonType INSP、またはSCからレコードを抽出します。この例では、 OR 条件を使用します。コマンドを強調表示し、「実行」をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

行数が 19,254 であることがわかります。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

ただし、 OR 条件を使用する代わりに、 IN 演算子を使用します。そこで、コマンドを入力して強調表示します。次に、「実行」をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

これにより、行数は同じ19,254になります。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

INSPSCを除くすべてのデータを抽出したい場合は、 NOT IN 演算子を使用します。コマンドを入力して強調表示しましょう。次に、「実行」をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

これにより、 INSP、およびSCからのデータを除くすべてのデータが得られます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

次に、 LIKE 演算子を使用して、FirstName列からRobを含むデータを抽出します。コマンドを使用して強調表示し、[実行]をクリックしてみましょう。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

その結果、出力のFirstName列にRob が含まれていることがわかります。%を使用したため、文字列Robを含むすべてのデータが表示されます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

最後に、 NOT LIKE 演算子を使用します。この例では、 Robを含まないデータを抽出します。コードを入力し、強調表示して、[実行] をクリックします。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

これにより、 FirstName列にRobを含むレコードが表示されない出力が得られます。

IN、NOT IN、LIKE、NOT LIKE を使用した SQL のフィルター

結論

要約すると、IN、NOT IN、LIKE、 NOT LIKE 演算子 を使用して SQL でフィルター処理する方法について説明しました。それぞれの使い方と違い、どのような場面で使えるのかを学びました。

これらの演算子は、 OR 条件を使用するより効率的です。これらの演算子を使用すると、長いコマンドを使用する代わりにデータベースから必要なデータをフィルタリングして抽出できるため、これらのフィルタリング条件を適切に利用するようにしてください。

ではごきげんよう、

ハーフィズ

Leave a Comment

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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。