SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

  1. Startseite
  2. Blog
  3. Datenbanken und SQL

Datenbanken und SQL

SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

Mit CASE WHEN schreiben Sie Wenn-Dann-Logik in SQL. Lernen Sie beide Formen und verwenden Sie sie dann für Beschriftungen, Pivot-Berichte, benutzerdefinierte Sortierung und sichere Aktualisierungen, während Sie NULL- und Sortierfallen vermeiden.

8 Min. Lesezeit
SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

Das Wichtigste

  • CASE gibt einen Wert zurück, der auf der ersten-Bedingung basiert, die wahr ist.
  • Stellen Sie die spezifischsten Bedingungen an die erste Stelle, da spätere Bedingungen sonst möglicherweise nie erreicht werden.
  • Ohne ELSE geben nicht übereinstimmende Zeilen NULL zurück.
  • Innerhalb von SUM oder COUNT verwandelt CASE eine Abfrage in einen kompakten Bericht im Pivot-Stil.

Die meisten Berichte erfordern eine gewisse Logik: Kennzeichnen Sie Bestellungen als groß oder klein, zählen Sie bezahlte und ausstehende Bestellungen nebeneinander oder zeigen Sie dringende Artikel zuerst an. SQL CASE WHEN verarbeitet all dies direkt in einer Abfrage und funktioniert in allen wichtigen Datenbanken.

Wir haben jede Abfrage hier in SQLite 3.50 ausgeführt und die angezeigten Ergebnisse stammen aus diesem Lauf. CASE ist Teil von Standard-SQL und verhält sich daher in diesen Beispielen in PostgreSQL, MySQL, SQL Server und Oracle gleich.

Was ist CASE WANN?

CASE ist ein Ausdruck, kein separater Befehl. Es wertet Bedingungen der Reihe nach aus und gibt einen Wert zurück, sodass es überall dort eingesetzt werden kann, wo ein Wert zulässig ist: in SELECT, WHERE, GROUP BY, ORDER BY oder innerhalb von Funktionen. Es endet immer mit END.

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE fallback
END

Die Beispieltabelle

CREATE TABLE orders (id INT, customer TEXT, total INT, status TEXT);

INSERT INTO orders VALUES
 (1,'Asha',1200,'paid'), (2,'Ben',300,'pending'),
 (3,'Asha',800,'paid'), (4,'Chitra',2500,'shipped'),
 (5,'Dev',150,'cancelled'), (6,'Ben',NULL,'pending');

Beachten Sie, dass Bestellung 6 keine Gesamtsumme hat. Diese Reihe ist später wichtig.

Gesucht CASE

Dies ist die flexiblere Form, da jedes WHEN eine eigene vollständige Bedingung hat:

SELECT id, total,
       CASE
         WHEN total >= 1000 THEN 'large'
         WHEN total >= 500 THEN 'medium'
         ELSE 'small'
       END AS size
FROM orders;

-- 1 | 1200 | large
-- 2 |  300 | small
-- 3 |  800 | medium
-- 4 | 2500 | large
-- 5 |  150 | small
-- 6 | NULL | small

Schauen Sie sich die letzte Reihe an. Bestellung 6 hat keine Gesamtsumme, ist aber mit „klein“ gekennzeichnet. Beide Vergleiche mit NULL waren nicht wahr, daher scheiterte es an ELSE. Im NULL-Abschnitt zeigen wir, wie man das behebt. Geben Sie dem Ergebnis immer einen Namen mit AS, sonst erhalten Sie möglicherweise einen umständlichen Spaltennamen.

Einfacher Fall

Wenn Sie eine Spalte mit festen Werten vergleichen, liest sich die kürzere Form besser:

SELECT id,
       CASE status
         WHEN 'paid' THEN 'Complete'
         WHEN 'shipped' THEN 'Complete'
         WHEN 'pending' THEN 'Waiting'
       END AS label
FROM orders;

-- 1 | Complete
-- 2 | Waiting
-- 3 | Complete
-- 4 | Complete
-- 5 | NULL
-- 6 | Waiting
Formular Vergleicht Können Bereiche verwendet werden? Am besten für
Einfach Ein Ausdruck für Gleichheit Nein Zuordnung von Codes zu Etiketten
Gesucht Jede Bedingung pro Zweig Ja Bereiche, mehrere Spalten, NULL-Prüfungen

Ordnung ist wichtig

CASE stoppt bei der ersten wahren Bedingung, und dies ist der häufigste Logikfehler. Vertauschen Sie die beiden Bedingungen aus unserer früheren Abfrage:

SELECT id, total,
       CASE
         WHEN total >= 500 THEN 'medium'
         WHEN total >= 1000 THEN 'large'
         ELSE 'small'
       END AS size
FROM orders WHERE id IN (1, 4);

-- 1 | 1200 | medium
-- 4 | 2500 | medium

Jetzt kann nichts mehr „groß“ sein. Insgesamt sind 2500 auch mindestens 500, der erste Zweig gewinnt also und der zweite wird nie erreicht. Es erscheint kein Fehler, nur falsche Beschriftungen. Stellen Sie bei Bereichen die restriktivste Bedingung an die erste Stelle oder schreiben Sie vollständige Bereiche, z. B. total >= 500 AND total < 1000.

Was passiert ohne ELSE?

In unserem einfachen CASE-Beispiel oben wurde Auftrag 5 storniert und keine Filiale hat dies bearbeitet, sodass das Ergebnis NULL war. Manchmal ist es genau das, was Sie wollen, wie der nächste Abschnitt zeigt. Bei der Erstellung von Beschriftungen ist Clear ELSE 'other' jedoch in der Regel besser, da dadurch unerwartete Werte sichtbar gemacht werden, anstatt Leerzeichen in einem Bericht zu hinterlassen.

Tipp: Alle Zweige sollten den gleichen Typ zurückgeben. Das Mischen von Text und Zahlen funktioniert in SQLite problemlos, strengere Datenbanken wie PostgreSQL lösen jedoch einen Fehler aus oder versuchen, Werte auf eine Weise zu konvertieren, die Sie nicht beabsichtigt haben.

Pivot-Berichte mit SUM

Dies ist eines der nützlichsten Muster im alltäglichen SQL. Durch das Einschließen von CASE in ein Aggregat werden Zeilen in Spalten umgewandelt, mit einer Zeile pro Kunde:

SELECT customer,
       SUM(CASE WHEN status = 'paid' THEN total ELSE 0 END) AS paid,
       SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) AS pending_orders
FROM orders
GROUP BY customer
ORDER BY customer;

-- Asha   | 2000 | 0
-- Ben    |    0 | 2
-- Chitra |    0 | 0
-- Dev    |    0 | 0

Eine Abfrage liefert jetzt sowohl den bezahlten Umsatz als auch die Anzahl der ausstehenden Bestellungen, ohne dass separate Abfragen oder Verknüpfungen erforderlich sind. Das Muster funktioniert in fast jeder Datenbank, im Gegensatz zur dedizierten PIVOT-Syntax, die nur einige anbieten. Wenn GROUP BY für Sie neu ist, lesen Sie SQL GROUP BY und HAVING.

Bedingte Zählungen

COUNT überspringt NULL-Werte, sodass ein CASE ohne ELSE nur die Zeilen zählt, die übereinstimmen:

SELECT COUNT(*) AS all_orders,
       COUNT(CASE WHEN status = 'paid' THEN 1 END) AS paid_orders,
       COUNT(CASE WHEN total >= 1000 THEN 1 END) AS large_orders
FROM orders;

-- 6 | 2 | 2

Seien Sie vorsichtig: Wenn Sie ELSE 0 innerhalb einer COUNT hinzufügen, wird jede Zeile gezählt, da 0 nicht NULL ist. Verwenden Sie ELSE 0 mit SUM und lassen Sie es mit COUNT weg. PostgreSQL und SQLite unterstützen auch COUNT(*) FILTER (WHERE ...), was sich gut liest, aber nicht überall verfügbar ist.

Gruppierung nach einem CASE

Sie können Ihre eigenen Buckets erstellen und diese dann zusammenfassen:

SELECT CASE WHEN total >= 1000 THEN 'large' ELSE 'other' END AS bucket,
       COUNT(*)
FROM orders
GROUP BY bucket
ORDER BY bucket;

-- large | 2
-- other | 4

Die Gruppierung nach dem Alias funktioniert in SQLite, PostgreSQL und MySQL. SQL Server lässt dies nicht zu, daher müssten Sie den gesamten Ausdruck wiederholen oder die Abfrage zuerst in einen CTE oder eine Unterabfrage einfügen.

Benutzerdefinierte Sortierung mit ORDER BY

Eine alphabetische Reihenfolge ist selten das, was ein Unternehmen wünscht. Mit CASE können Sie Ihre eigene Reihenfolge definieren:

SELECT id, status FROM orders
ORDER BY CASE status
           WHEN 'pending' THEN 1
           WHEN 'paid' THEN 2
           ELSE 3
         END, id;

-- 2 | pending
-- 6 | pending
-- 1 | paid
-- 3 | paid
-- 4 | shipped
-- 5 | cancelled

Ausstehende Bestellungen stehen an erster Stelle, was für eine Arbeitswarteschlange praktisch ist. Die zweite Sortierspalte id sorgt dafür, dass die Zeilen innerhalb jeder Gruppe in einer vorhersehbaren Reihenfolge bleiben.

FALL im UPDATE

Mit CASE kann eine Anweisung unterschiedliche Änderungen auf verschiedene Zeilen anwenden. Hier werden kleine ausstehende Bestellungen zur Überprüfung markiert:

UPDATE orders
SET status = CASE
               WHEN status = 'pending' AND total < 500 THEN 'review'
               ELSE status
             END;

SELECT id, status FROM orders WHERE customer = 'Ben';

-- 2 | review
-- 6 | pending

Die ELSE status lässt andere Zeilen unverändert. Es wegzulassen ist gefährlich, da nicht übereinstimmende Zeilen auf NULL gesetzt würden. Ohne eine WHERE-Klausel betrifft diese Anweisung auch jede Zeile. Fügen Sie daher bei großen Tabellen einen Filter hinzu und erwägen Sie, die Änderung in eine Transaktion einzuschließen, damit Sie das Ergebnis überprüfen können, bevor Sie einen Commit durchführen. Beachten Sie auch, dass sich Reihenfolge 6 nicht geändert hat, da ihre NULL-Summe total < 500 nicht erfüllte.

NULL-Traps

NULL verursacht zwei separate Probleme mit CASE. Erstens vergleicht die einfache Form mit Gleichheit, und nichts ist gleich NULL, nicht einmal NULL selbst:

SELECT CASE NULL WHEN NULL THEN 'matched' ELSE 'not matched' END;

-- not matched

CASE col WHEN NULL stimmt also nie überein. Verwenden Sie stattdessen das gesuchte Formular mit IS NULL. Zweitens, wie wir bei Reihenfolge 6 gesehen haben, entgeht ein NULL-Wert den Vergleichen und landet in ELSE. Die Lösung besteht darin, zuerst danach zu suchen:

SELECT id,
       CASE
         WHEN total IS NULL THEN 'unknown'
         WHEN total >= 1000 THEN 'large'
         ELSE 'other'
       END AS size
FROM orders WHERE id IN (1, 2, 6);

-- 1 | large
-- 2 | other
-- 6 | unknown

Bestellung 6 bekommt nun ein ehrliches Label. Unser Leitfaden zu SQL-NULL-Werten behandelt dieses Verhalten vollständig.

CASE im Vergleich zu anderen Optionen

Option Funktioniert in Verwenden Sie es wann
FALL Alle wichtigen Datenbanken Sie möchten tragbare Logik
KOALESZIEREN Alle wichtigen Datenbanken Sie benötigen nur einen Fallback für NULL
IF() MySQL Eine einfache Zwei-Wege-Wahl
IIF() SQL Server, SQLite Eine einfache Zwei-Wege-Wahl
DECODE() Orakel Älterer Oracle-Code
Nachschlagetabelle Alle Die Zuordnung ist lang oder ändert sich häufig

Die letzte Option verdient eine Überlegung. Wenn ein CASE auf dreißig Zweige anwächst und in fünf Abfragen erscheint, verschieben Sie die Zuordnung in eine Tabelle und verknüpfen Sie damit. Dann ist eine Änderung eine einzelne Zeilenaktualisierung und keine Codeänderung an fünf Stellen.

Häufige Fehler

  • Falsche Bedingungsreihenfolge. Eine allgemeine Bedingung verbirgt zunächst die engeren.
  • Vergessen END. Dies ist der häufigste Syntaxfehler.
  • Verwenden von WHEN NULL. Es stimmt nie überein, also verwenden Sie WHEN col IS NULL.
  • Hinzufügen von ELSE 0 innerhalb von COUNT. Es werden alle Zeilen gezählt.
  • Weglassen von ELSE in einem UPDATE. Es können Werte mit NULL gelöscht werden.
  • Filtern nach CASE in WHERE. Es kann verhindern, dass ein Index verwendet wird. Sehen Sie sich unseren Leitfaden zur SQL-Abfrageoptimierung an.

Fazit

CASE WHEN ist eine kleine Funktion, die viel Arbeit leistet. Denken Sie an drei Regeln: Der erste echte Zweig gewinnt, nicht übereinstimmende Zeilen werden zu NULL ohne ELSE und NULL benötigt eine eigene Prüfung. Nehmen Sie zum Üben einen Bericht, den Sie derzeit mit mehreren Abfragen erstellen, und versuchen Sie, ihn mithilfe von SUM(CASE ...) als eine Abfrage zu erstellen.

Häufige Fragen

Was macht CASE WHEN in SQL?

Es fügt einer Abfrage eine Wenn-Dann-Logik hinzu. SQL prüft jede Bedingung der Reihe nach und gibt den Wert für die erste Bedingung zurück, die wahr ist, oder den ELSE-Wert, wenn keiner wahr ist.

Was passiert, wenn eine CASE-Anweisung kein ELSE enthält?

Zeilen, die keine Bedingung erfüllen, geben NULL zurück. Dies ist innerhalb von COUNT nützlich, kann jedoch in Etiketten und Aktualisierungen zu Leerzeichen oder Datenverlusten führen.

Kann ich CASE in einer WHERE-Klausel verwenden?

Ja, weil es ein Ausdruck ist. Einfache UND- und ODER-Bedingungen sind jedoch in der Regel klarer und nutzen eher einen Index.

Was ist der Unterschied zwischen einfachem und gesuchtem CASE?

Simple CASE vergleicht einen Ausdruck mit festen Werten auf Gleichheit. Der durchsuchte CASE hat in jedem WHEN eine vollständige Bedingung, sodass er Bereiche und NULL-Prüfungen verarbeiten kann.

Können CASE-Anweisungen verschachtelt werden?

Ja, ein CASE kann in einem anderen erscheinen. Eine tiefe Verschachtelung ist jedoch schwer zu lesen. Daher sollten Sie erwägen, Bedingungen mit AND zu kombinieren oder eine Nachschlagetabelle zu verwenden.

Lerne weiter

Arbeiten Sie mit Stack Quora

Benötigen Sie Hilfe beim Testen, WordPress oder SEO?

Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.

Lesen Sie weiter

Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung

Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.

Künstliche Intelligenz

KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert

KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…

Artikel lesen →
DevOps

Erklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht

Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…

Artikel lesen →
Softwareentwicklung

API-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern

API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…

Artikel lesen →
Testautomatisierung

Spott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen

Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …

Artikel lesen →
Softwaretests

Code-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet

Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…

Artikel lesen →
Datenbanken & SQL

DELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck

DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen

SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…

Artikel lesen →
Softwareentwicklung

TypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler

TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…

Artikel lesen →
Softwareentwicklung

Python *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen

Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…

Artikel lesen →
Softwareentwicklung

Python-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet

Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…

Artikel lesen →
Künstliche Intelligenz

Was sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können

Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…

Artikel lesen →
DevOps

Überwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces

Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…

Artikel lesen →
DevOps

Docker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten

Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…

Artikel lesen →
Testautomatisierung

TDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte

TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…

Artikel lesen →
Softwaretests

Benutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele

Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen

SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…

Artikel lesen →
Datenbanken & SQL

SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…

Artikel lesen →
Softwareentwicklung

Was ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt

Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…

Artikel lesen →
Softwareentwicklung

Erklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen

Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…

Artikel lesen →
Softwareentwicklung

Erklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen

Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…

Artikel lesen →
Künstliche Intelligenz

Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…

Artikel lesen →
DevOps

Blau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl

Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…

Artikel lesen →
Testautomatisierung

Flaky-Tests: Was sie verursacht und wie man sie endgültig behebt

Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…

Artikel lesen →
Softwaretests

Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…

Artikel lesen →
Softwaretests

Testfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet

Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…

Artikel lesen →
Datenbanken & SQL

SQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben

An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…

Artikel lesen →
Datenbanken & SQL

SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…

Artikel lesen →
Softwareentwicklung

Tutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen

Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…

Artikel lesen →
Softwareentwicklung

Umgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen

Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…

Artikel lesen →
Softwareentwicklung

Python-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen

Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…

Artikel lesen →
Künstliche Intelligenz

Was ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt

Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…

Artikel lesen →
DevOps

Linux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen

Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…

Artikel lesen →
Testautomatisierung

Selenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten

Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…

Artikel lesen →
Softwaretests

Äquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt

Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…

Artikel lesen →
Softwaretests

Schweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele

Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…

Artikel lesen →
Datenbanken & SQL

Tutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen

Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…

Artikel lesen →
Datenbanken & SQL

SQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen

SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…

Artikel lesen →
Softwareentwicklung

Git merge vs rebase: Unterschiede, Beispiele und wann man was nutzt

Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.

Artikel lesen →
Softwareentwicklung

Python List Comprehension: Syntax, Beispiele und wann man darauf verzichtet

Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…

Artikel lesen →
Datenbanken & SQL

SQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)

SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…

Artikel lesen →