SQL WHERE IN – anhand von Beispielen erklärt

SQL WHERE IN – anhand von Beispielen erklärt

Sind Sie es leid, Daten in Ihrer Datenbank manuell zu filtern, und suchen nach einer effizienteren Möglichkeit, Daten mit mehreren Werten zu filtern? SQL WHERE IN könnte die Lösung sein, die Sie brauchen!

Wenn Sie mit SQL-Datenbanken arbeiten, sind Sie wahrscheinlich schon auf den Operator WHERE IN gestoßen. Dieser Operator wird verwendet, um mehrere Werte in einer WHERE-Klausel anzugeben, sodass Sie Ihre Daten genauer filtern können.

Mit diesem Operator können Sie eine Liste von Werten angeben, die mit einer Spalte in Ihrer Tabelle abgeglichen werden sollen. Diese Liste kann fest codiert oder durch eine Unterabfrage generiert werden, was Ihnen viel Flexibilität beim Filtern Ihrer Daten bietet.

SQL WHERE IN – anhand von Beispielen erklärt

Beispielsweise könnten Sie den IN-Operator verwenden, um alle Kunden aus einer bestimmten Liste von Städten zu finden oder um Ergebnisse basierend auf einer Reihe von Produkt-IDs zu filtern.

Einer der Vorteile der Verwendung des WHERE IN-Operators besteht darin, dass er Ihre Abfragen effizienter gestalten kann. Durch die Verwendung einer Werteliste anstelle mehrerer ODER-Bedingungen können Sie den Verarbeitungsaufwand der Datenbank reduzieren.

Dies kann besonders wichtig sein, wenn Sie mit großen Datensätzen oder komplexen Abfragen arbeiten, bei denen selbst kleine Optimierungen einen großen Leistungsunterschied bewirken können.

Inhaltsverzeichnis

Was ist die SQL-WHERE-IN-Klausel?

Die SQL WHERE IN-Klausel wird zum Filtern von Daten basierend auf einer Werteliste verwendet. Sie können mehrere Werte in einer WHERE-Klausel angeben, indem Sie eine Abkürzung für mehrere OR-Bedingungen verwenden. Die Syntax für die WHERE IN-Klausel für SQL Server , PostgreSQL, MYSQL und Oracle lautet wie folgt:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Wenn wir die obige SELECT-Anweisung betrachten, können Sie mit der WHERE IN-Klausel Daten aus einer Tabelle abrufen, in der die angegebene Spalte mit einem der Werte in der Liste übereinstimmt. Dies ist eine nützliche Syntax zum Filtern von Daten, wenn Sie nach einem bestimmten Satz von Werten suchen müssen.

Wie funktioniert die SQL-WHERE-IN-Klausel?

Die Klausel vergleicht die angegebene Spalte mit jedem Wert in der Liste. Wenn die Spalte mit einem der Werte in der Liste übereinstimmt, wird die Zeile in die Ergebnismenge aufgenommen.

Nehmen wir an, Sie haben eine Tabelle mit dem Namen „Kunden“, die aus drei Spalten besteht: „Kunden-ID“, „Kundenname“ und „Land“. Sie möchten alle Kunden aus den USA, Kanada und Mexiko abrufen. Die folgende Abfrage zeigt Ihnen, wie die WHERE IN-Klausel verwendet wird: SELECT customer_id, customer_name, country FROM customer WHERE country IN ('USA','Canada','Mexico');

Beispiele für SQL-WHERE-IN-Klauseln

Wenn Sie Ergebnisse basierend auf einer Liste möglicher Werte filtern möchten, können Sie die SQL-WHERE-IN-Klausel verwenden. Diese Klausel bietet eine einfache Möglichkeit, Zeilen auszuwählen, in denen eine bestimmte Spalte mit einem Wert aus einer Reihe von Werten übereinstimmt.

Hier sind fünf Beispiele, wie die Klausel verwendet werden kann:

  1. Verwenden der SQL-WHERE-IN-Klausel mit einem einzelnen Wert

Angenommen, Sie möchten alle Zeilen in einer Tabelle auswählen, deren Statusspalte auf „veröffentlicht“ gesetzt ist. Sie können dies mit der folgenden SQL-Anweisung tun:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Dadurch werden alle Zeilen zurückgegeben, in denen die Statusspalte auf „veröffentlicht“ gesetzt ist.

  1. Verwenden der SQL-WHERE-IN-Klausel mit mehreren Werten

Nehmen wir nun an, Sie möchten alle Zeilen auswählen, deren Statusspalte entweder auf „veröffentlicht“ oder „Entwurf“ gesetzt ist. Sie können die folgende SQL-Anweisung verwenden:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Dadurch werden alle Zeilen zurückgegeben, in denen die Statusspalte auf „veröffentlicht“ oder „Entwurf“ gesetzt ist. Außerdem können Sie beliebig viele Werte hinzufügen, getrennt durch Kommas.

  1. Verwenden der SQL-WHERE-IN-Klausel mit der Löschanweisung

Angenommen, Sie haben eine Tabelle namens „Kunden“ mit den folgenden Daten:

SQL WHERE IN – anhand von Beispielen erklärt

Um Zeilen aus dieser Tabelle basierend auf mehreren Werten in der Spalte „Stadt“ zu löschen, kann die SQL-WHERE-IN-Klausel mit einer DELETE-Anweisung verwendet werden, wie in der folgenden Abfrage gezeigt:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Diese Anweisung löscht alle Zeilen aus der Tabelle „Kunden“, in denen die Spaltennamen „Stadt“ mit einem der Werte in der Liste übereinstimmen, z. B. „New York“, „Chicago“, „Miami“. Im obigen Beispiel werden die erste, dritte und fünfte Zeile aus der Tabelle gelöscht.

Beachten Sie, dass Sie bei der Verwendung der WHERE IN-Klausel mit einer DELETE-Anweisung sehr vorsichtig sein sollten, um Fehler zu vermeiden, indem Sie sicherstellen, dass Sie die richtigen Daten löschen. Am besten testen Sie Ihre Abfrage an einer kleinen Teilmenge der Daten, bevor Sie sie für Ihre gesamte Datenbank ausführen.

  1. Verwenden des WHERE IN-Operators und der SQL WHERE-Klausel zum Filtern von Daten basierend auf numerischen Werten

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Diese Abfrage gibt alle Zeilen aus der Tabelle „Kunden“ zurück, wobei die Altersspalte die numerischen Werte 25, 30 oder 35 und die Stadtspalte den Wert „London“ enthält.

Beachten Sie, dass der WHERE IN-Operator ein logischer Operator ist, der Ihnen nur die Angabe mehrerer Werte für eine einzelne Spalte ermöglicht. Die SELECT-Anweisung wird verwendet, um Daten aus einer Tabelle abzurufen, und die WHERE-Klausel wird verwendet, um die Daten basierend auf bestimmten Bedingungen zu filtern.

In diesem Beispiel gibt die Abfrage Zeilen aus der Tabelle „Kunden“ zurück, wobei die Altersspalte mit einem der angegebenen numerischen Werte und die Stadtspalte mit dem Wert „London“ übereinstimmt. Die in dieser Abfrage verwendeten Spaltennamen sind „Alter“ und „Stadt“, und die abgefragte Tabelle ist „Kunden“.

  1. Verwendung von WHERE IN mit der SELECT-Anweisung und dem IN-Operator.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

In diesem Beispiel verwenden wir eine Unterabfrage, um alle Kunden-IDs aus der Tabelle „Kunden“ abzurufen, wobei die Länderspalte den Wert „USA“ enthält. Anschließend verwenden wir den WHERE IN-Operator, um die Tabelle „Bestellungen“ basierend auf diesen Kunden-IDs zu filtern.

Diese Abfrage gibt alle Zeilen aus der Tabelle „Orders“ zurück, in denen die Spalte „customer_id“ mit einer der von der Unterabfrage zurückgegebenen Kunden-IDs übereinstimmt.

Denken Sie daran, dass der WHERE IN-Operator ein Vergleichsoperator ist, der es Ihnen ermöglicht, eine Spalte mit einer Werteliste zu vergleichen. In diesem Fall vergleichen wir die Spalte „customer_id“ mit einer Liste von Kunden-IDs, die von der Unterabfrage zurückgegeben werden.

Mithilfe dieses Operators und einer Unterabfrage können Sie Daten nach bestimmten Kriterien filtern und nur die Daten abrufen, die Ihren Anforderungen entsprechen.

2 Hauptvorteile der Verwendung der SQL WHERE IN-Klausel?

  1. Verbesserte Abfrageleistung

Die Klausel bietet einen der größten Vorteile im Hinblick auf die Abfrageleistung. Beim Filtern von Daten basierend auf mehreren Werten kann die Verwendung der Klausel wesentlich effizienter und schneller sein als das Schreiben mehrerer WHERE-Klauseln mit OR-Operatoren. Dies liegt daran, dass die Datenbank-Engine den Abfrageausführungsplan optimieren kann, um die erforderlichen Daten effizient abzurufen.

Betrachten Sie beispielsweise die folgenden SQL- Abfragen mit der Tabelle „Kunden“, in der wir versuchen, die Kundendetails anhand ihrer Länder zu identifizieren.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – anhand von Beispielen erklärt

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – anhand von Beispielen erklärt

Wie im obigen Beispiel zu sehen ist, kann die Verwendung der Klausel zu einer erheblichen Verbesserung der Abfrageleistung führen und Ihnen mehr Zeit sparen. Es ist einfacher, alle Länder auf einmal auszuwählen, als ein Land nach dem anderen mithilfe des OR-Operators in einem viel größeren Datensatz auszuwählen.

  1. Vereinfachtes Abfrageschreiben

Ein weiterer großer Vorteil der Verwendung der SQL WHERE IN-Klausel besteht darin, dass sie das Schreiben komplexer Abfragen vereinfachen kann. Wenn Sie Daten basierend auf mehreren Werten filtern müssen, kann die Verwendung mehrerer WHERE-Klauseln mit OR-Operatoren schnell umständlich und schwierig zu verwalten sein.

Mit der Klausel können Sie alle Werte, die Sie filtern möchten, in einer einzigen Anweisung angeben, wodurch Ihre Abfragen einfacher zu lesen und zu verwalten sind. Dies kann besonders nützlich sein, wenn Sie mit großen Datensätzen arbeiten oder komplexe Abfragen mit mehreren Bedingungen schreiben müssen.

Betrachten Sie beispielsweise die folgende SQL-Abfrage:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

In beiden Abfragen aus dem obigen Beispiel gibt die Abfrage alle „Elektronik“-Produkte von Apple, Samsung und Sony zurück.

Allerdings kann die Verwendung der WHERE IN-Klausel, wie sie in der letztgenannten Abfrage zu sehen ist, den Prozess der Verwendung komplexer Abfragen vereinfachen und sie leichter lesbar und verständlich machen.

Darüber hinaus trägt es dazu bei, Fehler zu vermeiden und den Zeitaufwand zu reduzieren.

Unser letztes Wort

Glückwunsch! Sie wissen jetzt, wie Sie die SQL-WHERE-IN-Klausel verwenden, um Daten basierend auf einer Werteliste zu filtern. Lassen Sie uns bewerten, was wir gelernt haben:

Durch die Verwendung von WHERE IN können Sie eine Reihe von SQL-Abfragen vereinfachen und erstellen, um eine effizientere schriftliche Ausgabe abzurufen.

Denken Sie daran, dass WHERE IN eine Abkürzung für mehrere ODER-Bedingungen ist und daher lange Listen von ODER-Anweisungen ersetzen kann. Darüber hinaus kann die Klausel mit Unterabfragen verwendet werden, sodass Sie Daten basierend auf den Ergebnissen einer anderen Abfrage filtern können.

Bei der Verwendung von WHERE IN ist es wichtig, die Datentypen der zu vergleichenden Werte zu berücksichtigen. Wenn die Datentypen nicht übereinstimmen, müssen Sie möglicherweise Typkonvertierungsfunktionen verwenden, um einen genauen Vergleich sicherzustellen.

Insgesamt ist die SQL WHERE IN-Klausel eine leistungsstarke und dennoch grundlegende Syntax zum Filtern von Daten in SQL-Abfragen. Durch die Beherrschung dieser Klausel können Sie die Leistung und Lesbarkeit Ihres SQL-Codes verbessern und so die Arbeit und Wartung auf lange Sicht erleichtern.


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst