So nutzt du den SQL-IN-Operator: Effiziente Filtertechniken im Überblick
Der SQL-IN-Operator ermöglicht es dir, Abfrageergebnisse so zu filtern, dass nur Zeilen mit bestimmten Bedingungen enthalten sind. Entdecke sein volles Potenzial und Alternativen.
Der SQL-Operator IN ist ein praktisches Werkzeug, um Daten anhand einer Werteliste zu filtern. Gerade in längeren Abfragen vereinfacht der IN-Operator komplexe Bedingungen und verbessert die Lesbarkeit.
Wenn du in den Datenbereich einsteigen willst, empfehle ich dir die Kurse Introduction to SQL und SQL Fundamentals von DataCamp, um die Grundlagen der SQL-Filterung zu lernen. Für einen schnellen Überblick wirf einen Blick auf unser SQL Basics Cheat Sheet.
Was ist der SQL-IN-Operator?
Der SQL-Operator IN ist ein leistungsfähiges Mittel, um Ergebnisse in SQL-Abfragen zu verfeinern. Er gibt nur die Zeilen zurück, die die angegebenen Bedingungen erfüllen.
Der IN-Operator steht nach der WHERE-Klausel, um Ergebnisse anhand mehrerer Bedingungen zu filtern. Du nutzt ihn überall dort, wo eine Spalte mehrere unterschiedliche Werte haben kann.
-- Select the employee ID, employee name, and department columnsSELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'WHERE department IN('Sales','HR');Bereitgestellt von
Im obigen Beispiel wählen wir die Spalten employee_id, employee_name und department aus der Tabelle employees aus. Zurückgegeben werden jedoch nur die Zeilen, in denen die Mitarbeitenden aus Sales und HR stammen.
Der IN-Operator kann verschiedene SQL-Datentypen filtern, darunter Strings, Zahlen und Datumswerte. Achte beim Filtern immer darauf, dass die Referenzspalte den passenden Datentyp hat.
Syntax des SQL-IN-Operators
Der IN-Operator hat eine einfache Syntax zum Filtern von Werten. Er wird in der WHERE-Klausel verwendet, um mehrere Werte aus einer Spalte zu filtern. Die allgemeine Syntax sieht so aus:
-- Select the columns you want to retrieveSELECT column_name(s)-- Specify the table from which to retrieve the dataFROM table_name
-- Filter the results to include only those rows where the column's value matches any value in the specified listWHERE column_name IN(value1, value2,...);Bereitgestellt von
Hier ein praktisches Beispiel dafür, wie der IN-Operator in der WHERE-Klausel verwendet wird.
-- Select the employee ID, employee name, and department columnsSELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'WHERE department IN('Sales','HR');Bereitgestellt von
Wichtige Punkte
Der IN-Operator steht in der WHERE-Klausel der SELECT-Anweisung. So kann die Abfrage Zeilen anhand mehrerer Werte filtern. Richtig eingesetzt vereinfacht der IN-Operator komplexe Abfragen und macht sie leichter lesbar.
Der IN-Operator ist in gängigen Datenbanken verfügbar, darunter SQL Server, PostgreSQL, MySQL und Oracle. Es ist gängige Praxis, Schlüsselwörter wie IN in Großbuchstaben zu schreiben, um die Lesbarkeit zu erhöhen.
Häufige Anwendungsfälle des IN-Operators
Der SQL-Operator IN kommt in vielen Analyse-Szenarien zum Einsatz. In diesem Abschnitt schauen wir uns typische Use Cases an, etwa das Filtern von Daten, den Umgang mit mehreren Werten und die Nutzung in Unterabfragen.
Daten filtern
Der IN-Operator filtert Datensätze und gibt eine definierte Wertemenge zurück. Die folgende Abfrage wählt beispielsweise alle Spalten aus der Tabelle employees und gibt nur Zeilen für die Bereiche Sales, HR und IT zurück.
-- Select all columns from employees tableSELECT employee_id, employee_name, department
FROM employees
-- Filter to include only 'Sales', 'HR', and 'IT' departmentsWHERE department IN('Sales','HR','IT');Bereitgestellt von
Mit mehreren Werten umgehen
Mit dem IN-Operator lassen sich Datensätze auch über mehrere Werte hinweg filtern. Das ist besonders hilfreich, wenn du sonst viele OR-Bedingungen schreiben müsstest. IN sorgt hier für kürzeren, besser lesbaren Code.
So würde die Abfrage mit dem OR-Operator statt IN aussehen:
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on multiple department names using OR conditionsWHERE department ='Sales'OR department ='Marketing'OR department ='HR';Bereitgestellt von
Und so sieht sie mit dem IN-Operator aus. Beachte, wie die Wiederholungen von OR entfallen und die Abfrage schlanker wird.
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on a list of department names using the IN operatorWHERE department IN('Sales','Marketing','HR');Bereitgestellt von
Unterabfragen (Subqueries)
Du kannst den IN-Operator auch innerhalb einer Unterabfrage nutzen. So filterst du Ergebnisse anhand einer anderen Abfrage oder verknüpfter Daten. Im folgenden Beispiel wählt die Unterabfrage die department_id des Bereichs Sales aus der Tabelle departments. Die Hauptabfrage gibt dann die Zeilen mit employee_id und Name aus der Tabelle employees zurück, gefiltert nach dem Ergebnis der Unterabfrage.
-- Main query to select employee_id and name from the employees tableSELECT employee_id, name
FROM employees
-- Filter employees based on department_id using a subqueryWHERE department_id IN(-- Subquery to get department_id for the "Sales" departmentSELECT department_id
FROM departments
WHERE department_name ='Sales');Bereitgestellt von
Einschränkungen und Alternativen
So einfach der IN-Operator zu verwenden ist, hat er auch Grenzen. Dazu zählen unter anderem:
Performance bei langen Listen: Sehr große Wertelisten im IN-Operator können die Ausführung verlangsamen.
Umgang mit NULL-Werten:IN behandelt NULL nicht effizient und kann unerwartete Ergebnisse liefern, da NULL-Werte nicht in der Liste enthalten sind.
Begrenzte Flexibilität: Bei großen Datensätzen über mehrere Spalten stößt IN an Grenzen. Meist lassen sich nur ausgewählte Spalten über Unterabfragen filtern.
Um diese Einschränkungen zu umgehen, bieten sich folgende Alternativen an:
Mit EXISTS arbeiten
Der Operator EXISTS prüft, ob bestimmte Datensätze in einer Unterabfrage vorhanden sind. Richtig eingesetzt ist er oft effizienter und schneller.
-- Select employee ID and name for employees in departments located in New York using EXISTSSELECT employee_id, employee_name
FROM employees e
-- Check if there exists a row in the departments tableWHEREEXISTS(-- Select 1 is used here as a placeholder; it simply checks for existenceSELECT1FROM departments d
-- Match the department_id in employees with department_id in departmentsWHERE d.department_id = e.department_id
-- Filter for departments located in New YorkAND d.location ='New York');Bereitgestellt von
JOIN verwenden
Die SQL-JOIN-Klausel ist bei komplexeren Filtern effizient und eignet sich, wenn du Daten über mehrere verknüpfte Spalten hinweg filterst. Im Beispiel unten verbindet die JOIN-Klausel die Tabellen employees und departments über department_id, um Mitarbeitende zu filtern, die in New York arbeiten.
-- Select employee ID and name for employees in departments located in New York using JOINSELECT e.employee_id, e.employee_name
FROM employees e
-- Join the employees table with the departments table on department_idJOIN departments d ON e.department_id = d.department_id
-- Filter the results to include only departments located in New YorkWHERE d.location ='New York';Bereitgestellt von
Common Table Expressions (CTEs) oder temporäre Tabellen
Wenn du mit sehr langen Listen arbeitest, speichere sie vorab in einer CTE. Das verbessert Performance und Lesbarkeit.
-- Define a CTE (Common Table Expression) to store the list of department IDs located in New YorkWITH DepartmentList AS(SELECT department_id
FROM departments
WHERE location ='New York')-- Select employee ID and name for employees who belong to the departments listed in the CTESELECT e.employee_id, e.employee_name
FROM employees e
-- Filter the results to include only employees whose department_id is in the list of department IDs from the CTEWHERE e.department_id IN(SELECT department_id FROM DepartmentList);Bereitgestellt von
Wenn du weitere fortgeschrittene Filtertechniken lernen möchtest, empfehle ich den DataCamp-Lernpfad Associate Data Analyst in SQL. Außerdem lohnt sich der Kurs Intermediate SQL Server mit einem Kapitel zu Common Table Expressions und weiteren Advanced-Themen.
Fazit
Den SQL-Operator IN zu verstehen, ist für Datenprofis wichtig, weil du damit Daten während der Analyse zielgerichtet filtern und transformieren kannst. Um deine SQL-Kompetenz beim Einsatz von IN zu stärken, übe am besten mit verschiedenen Datensätzen.
Wenn du dein SQL-Wissen auf das nächste Level bringen willst, empfehle ich den Kurs Reporting in SQL für weitere komplexe Abfragetechniken. Zudem hilft dir die SQL Associate Certification, dich von anderen Datenanalystinnen und -analysten abzuheben und deine Praxisstärke in fortgeschrittener SQL-Analyse zu zeigen.
Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchführst.
Quadrieren in Python ist einfach: Nutze den eingebauten Operator ** oder setze für vielseitigere Lösungen NumPy, pow(), math.pow(), Bitoperatoren und weitere Funktionen ein.
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Der SQL-Operator
INist ein praktisches Werkzeug, um Daten anhand einer Werteliste zu filtern. Gerade in längeren Abfragen vereinfacht derIN-Operator komplexe Bedingungen und verbessert die Lesbarkeit.Wenn du in den Datenbereich einsteigen willst, empfehle ich dir die Kurse Introduction to SQL und SQL Fundamentals von DataCamp, um die Grundlagen der SQL-Filterung zu lernen. Für einen schnellen Überblick wirf einen Blick auf unser SQL Basics Cheat Sheet.
Was ist der SQL-IN-Operator?
Der SQL-Operator
INist ein leistungsfähiges Mittel, um Ergebnisse in SQL-Abfragen zu verfeinern. Er gibt nur die Zeilen zurück, die die angegebenen Bedingungen erfüllen.Der
IN-Operator steht nach derWHERE-Klausel, um Ergebnisse anhand mehrerer Bedingungen zu filtern. Du nutzt ihn überall dort, wo eine Spalte mehrere unterschiedliche Werte haben kann.Im obigen Beispiel wählen wir die Spalten
employee_id,employee_nameunddepartmentaus der Tabelleemployeesaus. Zurückgegeben werden jedoch nur die Zeilen, in denen die Mitarbeitenden ausSalesundHRstammen.Der
IN-Operator kann verschiedene SQL-Datentypen filtern, darunter Strings, Zahlen und Datumswerte. Achte beim Filtern immer darauf, dass die Referenzspalte den passenden Datentyp hat.Syntax des SQL-IN-Operators
Der
IN-Operator hat eine einfache Syntax zum Filtern von Werten. Er wird in derWHERE-Klausel verwendet, um mehrere Werte aus einer Spalte zu filtern. Die allgemeine Syntax sieht so aus:Hier ein praktisches Beispiel dafür, wie der
IN-Operator in derWHERE-Klausel verwendet wird.Wichtige Punkte
Der
IN-Operator steht in derWHERE-Klausel derSELECT-Anweisung. So kann die Abfrage Zeilen anhand mehrerer Werte filtern. Richtig eingesetzt vereinfacht derIN-Operator komplexe Abfragen und macht sie leichter lesbar.Der
IN-Operator ist in gängigen Datenbanken verfügbar, darunter SQL Server, PostgreSQL, MySQL und Oracle. Es ist gängige Praxis, Schlüsselwörter wieINin Großbuchstaben zu schreiben, um die Lesbarkeit zu erhöhen.Häufige Anwendungsfälle des IN-Operators
Der SQL-Operator
INkommt in vielen Analyse-Szenarien zum Einsatz. In diesem Abschnitt schauen wir uns typische Use Cases an, etwa das Filtern von Daten, den Umgang mit mehreren Werten und die Nutzung in Unterabfragen.Daten filtern
Der
IN-Operator filtert Datensätze und gibt eine definierte Wertemenge zurück. Die folgende Abfrage wählt beispielsweise alle Spalten aus der Tabelleemployeesund gibt nur Zeilen für die BereicheSales,HRundITzurück.Mit mehreren Werten umgehen
Mit dem
IN-Operator lassen sich Datensätze auch über mehrere Werte hinweg filtern. Das ist besonders hilfreich, wenn du sonst vieleOR-Bedingungen schreiben müsstest.INsorgt hier für kürzeren, besser lesbaren Code.So würde die Abfrage mit dem
OR-Operator stattINaussehen:Und so sieht sie mit dem
IN-Operator aus. Beachte, wie die Wiederholungen vonORentfallen und die Abfrage schlanker wird.Unterabfragen (Subqueries)
Du kannst den
IN-Operator auch innerhalb einer Unterabfrage nutzen. So filterst du Ergebnisse anhand einer anderen Abfrage oder verknüpfter Daten. Im folgenden Beispiel wählt die Unterabfrage diedepartment_iddes BereichsSalesaus der Tabelledepartments. Die Hauptabfrage gibt dann die Zeilen mitemployee_idund Name aus der Tabelleemployeeszurück, gefiltert nach dem Ergebnis der Unterabfrage.Einschränkungen und Alternativen
So einfach der
IN-Operator zu verwenden ist, hat er auch Grenzen. Dazu zählen unter anderem:IN-Operator können die Ausführung verlangsamen.INbehandeltNULLnicht effizient und kann unerwartete Ergebnisse liefern, daNULL-Werte nicht in der Liste enthalten sind.INan Grenzen. Meist lassen sich nur ausgewählte Spalten über Unterabfragen filtern.Um diese Einschränkungen zu umgehen, bieten sich folgende Alternativen an:
Mit EXISTS arbeiten
Der Operator
EXISTSprüft, ob bestimmte Datensätze in einer Unterabfrage vorhanden sind. Richtig eingesetzt ist er oft effizienter und schneller.JOIN verwenden
Die SQL-
JOIN-Klausel ist bei komplexeren Filtern effizient und eignet sich, wenn du Daten über mehrere verknüpfte Spalten hinweg filterst. Im Beispiel unten verbindet dieJOIN-Klausel die Tabellen employees und departments überdepartment_id, um Mitarbeitende zu filtern, die in New York arbeiten.Common Table Expressions (CTEs) oder temporäre Tabellen
Wenn du mit sehr langen Listen arbeitest, speichere sie vorab in einer CTE. Das verbessert Performance und Lesbarkeit.
Wenn du weitere fortgeschrittene Filtertechniken lernen möchtest, empfehle ich den DataCamp-Lernpfad Associate Data Analyst in SQL. Außerdem lohnt sich der Kurs Intermediate SQL Server mit einem Kapitel zu Common Table Expressions und weiteren Advanced-Themen.
Fazit
Den SQL-Operator
INzu verstehen, ist für Datenprofis wichtig, weil du damit Daten während der Analyse zielgerichtet filtern und transformieren kannst. Um deine SQL-Kompetenz beim Einsatz vonINzu stärken, übe am besten mit verschiedenen Datensätzen.Wenn du dein SQL-Wissen auf das nächste Level bringen willst, empfehle ich den Kurs Reporting in SQL für weitere komplexe Abfragetechniken. Zudem hilft dir die SQL Associate Certification, dich von anderen Datenanalystinnen und -analysten abzuheben und deine Praxisstärke in fortgeschrittener SQL-Analyse zu zeigen.