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.
CASEgibt 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
ELSEgeben nicht übereinstimmende ZeilenNULLzurück. - Innerhalb von
SUModerCOUNTverwandelt 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 SieWHEN col IS NULL. - Hinzufügen von
ELSE 0innerhalb vonCOUNT. Es werden alle Zeilen gezählt. - Weglassen von
ELSEin 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
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.
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.
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 →DevOpsErklä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 →SoftwareentwicklungAPI-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 →TestautomatisierungSpott 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 →SoftwaretestsCode-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 & SQLDELETE 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 & SQLErklä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 →SoftwareentwicklungTypeScript-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 →SoftwareentwicklungPython *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 →SoftwareentwicklungPython-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 IntelligenzWas 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 →DevOpsDocker-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 →TestautomatisierungTDD 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 →SoftwaretestsBenutzerakzeptanztests (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 & SQLErklä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 & SQLSQL 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 →SoftwareentwicklungWas 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 →SoftwareentwicklungErklä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 →SoftwareentwicklungErklä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 IntelligenzWas 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 →DevOpsBlau-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 →TestautomatisierungFlaky-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 →SoftwaretestsLasttest 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 →SoftwaretestsTestfall 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 & SQLSQL-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 & SQLSQL 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 →SoftwareentwicklungTutorial 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 →SoftwareentwicklungUmgang 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 →SoftwareentwicklungPython-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 IntelligenzWas 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 →DevOpsLinux-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 →TestautomatisierungSelenium 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 →SoftwaretestsSchweregrad 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 & SQLTutorial 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 & SQLSQL-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 →SoftwareentwicklungGit 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 →SoftwareentwicklungPython 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 & SQLSQL 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 →