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

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

ではごきげんよう、

ハーフィズ


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて