SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten

  1. Home
  2. Blog
  3. Databases en SQL

Databases en SQL

SQL CASE WHEN-instructie: Syntaxis, echte voorbeelden en veelvoorkomende fouten

CASE WHEN is hoe je als-dan-logica in SQL schrijft. Leer beide formulieren en gebruik het vervolgens voor labels, draairapporten, aangepaste sortering en veilige updates, terwijl u de NULL- en bestelvalkuilen vermijdt.

8 min leestijd
SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelgemaakte fouten

Belangrijkste punten

  • CASE retourneert een waarde op basis van de eerste voorwaarde die waar is.
  • Zet de meest specifieke voorwaarden eerst, anders worden deze misschien nooit bereikt.
  • Zonder ELSE retourneren ongeëvenaarde rijen NULL.
  • Binnen SUM of COUNT zet CASE één query om in een compact rapport in draaitabelstijl.

De meeste rapporten hebben enige logica nodig: markeer bestellingen als groot of klein, tel betaalde en openstaande bestellingen naast elkaar, of toon dringende artikelen eerst. SQL CASE WHEN verwerkt dit allemaal rechtstreeks in een query en werkt in alle grote databases.

We hebben elke query hier in SQLite 3.50 uitgevoerd en de weergegeven resultaten zijn afkomstig van die run. CASE maakt deel uit van standaard SQL, dus het gedraagt ​​zich voor deze voorbeelden op dezelfde manier in PostgreSQL, MySQL, SQL Server en Oracle.

Wat is GEVAL WANNEER?

CASE is een expressie, geen afzonderlijk commando. Het evalueert de voorwaarden op volgorde en retourneert een waarde, zodat het overal terecht kan waar een waarde is toegestaan: in SELECT, WHERE, GROUP BY, ORDER BY of binnen functies. Het eindigt altijd met END.

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

De voorbeeldtafel

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');

Merk op dat bestelling 6 geen totaal heeft. Die rij is later van belang.

CASE gezocht

Dit is de meer flexibele vorm, aangezien elke WHEN een volledige eigen voorwaarde heeft:

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

Kijk naar de laatste rij. Bestelling 6 heeft geen totaal, maar is wel ‘klein’. Beide vergelijkingen met NULL waren niet waar, dus ging het niet door naar ELSE. In de NULL-sectie laten we zien hoe u dit kunt oplossen. Geef het resultaat altijd een naam met behulp van AS, anders krijgt u mogelijk een lastige kolomnaam.

Eenvoudig GEVAL

Wanneer u één kolom met vaste waarden vergelijkt, leest de kortere vorm beter:

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
Vorm Vergelijkt Kan bereiken worden gebruikt? Beste voor
Eenvoudig Eén uitdrukking voor gelijkheid Nee Codes aan labels toewijzen
Gezocht Eventuele voorwaarde per vestiging Ja Bereiken, meerdere kolommen, NULL-controles

Orde is belangrijk

CASE stopt bij de eerste echte voorwaarde, en dit is de meest voorkomende logische bug. Verwissel de twee voorwaarden uit onze eerdere vraag:

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

Nu kan niets ooit ‘groot’ zijn. Een totaal van 2500 is ook minimaal 500, dus de eerste tak wint en de tweede wordt nooit bereikt. Er verschijnt geen fout, alleen verkeerde labels. Voor bereiken plaatst u de meest beperkende voorwaarde eerst, of schrijft u volledige bereiken, zoals total >= 500 AND total < 1000.

Wat gebeurt er zonder ANDERS?

In ons eenvoudige CASE-voorbeeld hierboven werd bestelling 5 geannuleerd en werd dat door geen enkel filiaal afgehandeld, dus het resultaat was NULL. Soms is dat precies wat je wilt, zoals de volgende sectie laat zien. Maar bij het maken van labels is een duidelijke ELSE 'other' meestal beter, omdat hierdoor onverwachte waarden zichtbaar worden in plaats van dat er lege plekken in een rapport achterblijven.

Tip: Alle vertakkingen moeten hetzelfde type retourneren. Het combineren van tekst en cijfers werkt losjes in SQLite, maar strengere databases, zoals PostgreSQL, zullen een foutmelding geven of proberen waarden om te zetten op manieren die je niet bedoelde.

Rapporten in draaistijl met SUM

Dit is een van de nuttigste patronen in de dagelijkse SQL. Door CASE in een aggregatie te plaatsen, worden rijen in kolommen omgezet, met één rij per klant:

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

Eén zoekopdracht geeft nu zowel de betaalde omzet als het aantal lopende bestellingen weer, zonder dat er afzonderlijke zoekopdrachten of joins nodig zijn. Het patroon werkt in bijna elke database, in tegenstelling tot de speciale PIVOT syntaxis die slechts enkele bieden. Als GROUP BY nieuw voor je is, lees dan SQL GROUP BY en HAVING.

Voorwaardelijke tellingen

COUNT slaat NULL’s over, dus een CASE zonder ELSE telt alleen de rijen die overeenkomen:

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

Let op: als je ELSE 0 binnen een COUNT optelt, wordt elke rij geteld, omdat 0 niet NULL is. Gebruik ELSE 0 bij SUM en laat het weg bij COUNT. PostgreSQL en SQLite ondersteunen ook COUNT(*) FILTER (WHERE ...), wat prettig leest, maar niet overal beschikbaar is.

Groeperen op basis van een CASE

U kunt uw eigen buckets maken en deze vervolgens samenvatten:

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

Groeperen op alias werkt in SQLite, PostgreSQL en MySQL. SQL Server staat dit niet toe, dus u zou de hele expressie moeten herhalen, of de query eerst in een CTE of subquery moeten plaatsen.

Aangepaste sortering met ORDER BY

Alfabetische volgorde is zelden wat een bedrijf wil. Met CASE kunt u uw eigen volgorde definiëren:

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

Openstaande bestellingen komen op de eerste plaats, wat handig is voor een werkwachtrij. De tweede sorteerkolom, id, houdt de rijen binnen elke groep in een voorspelbare volgorde.

CASE in UPDATE

Met CASE kan één instructie verschillende wijzigingen op verschillende rijen toepassen. Hier worden kleine lopende bestellingen gemarkeerd ter beoordeling:

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

De ELSE status houdt andere rijen ongewijzigd. Het is gevaarlijk om dit weg te laten, omdat niet-overeenkomende rijen op NULL worden ingesteld. Zonder een WHERE-clausule heeft deze verklaring ook betrekking op elke rij, dus voeg bij grote tabellen een filter toe en overweeg de wijziging in een transactie te verpakken, zodat u het resultaat kunt controleren voordat u een commit uitvoert. Merk ook op dat volgorde 6 niet veranderde, omdat het NULL-totaal niet voldeed aan total < 500.

NULL vallen

NULL veroorzaakt twee afzonderlijke problemen met CASE. Ten eerste vergelijkt de eenvoudige vorm met behulp van gelijkheid, en niets is gelijk aan NULL, zelfs niet aan NULL zelf:

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

-- not matched

Dus CASE col WHEN NULL komt nooit overeen. Gebruik in plaats daarvan het gezochte formulier met IS NULL. Ten tweede, zoals we bij bestelling 6 hebben gezien, glijdt een NULL-waarde voorbij vergelijkingen en belandt in ELSE. De oplossing is om er eerst naar te kijken:

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

Bestel 6 krijgt nu een eerlijk label. Onze gids voor SQL NULL-waarden behandelt dit gedrag volledig.

CASE versus andere opties

Optie Werkt binnen Gebruik het wanneer
GEVAL Alle grote databases Je wilt draagbare logica
COALESCE Alle grote databases Je hebt alleen een fallback nodig voor NULL
IF() MySQL Een eenvoudige tweerichtingskeuze
IIF() SQL Server, SQLite Een eenvoudige tweerichtingskeuze
DECODE() Orakel Oudere Oracle-code
Opzoektabel Allemaal De mapping is lang of verandert vaak

Die laatste optie verdient het om over na te denken. Als een CASE uitgroeit tot dertig vertakkingen en in vijf query’s voorkomt, verplaatst u de mapping naar een tabel en voegt daaraan toe. Dan is een wijziging een update van één rij, in plaats van een codewijziging op vijf plaatsen.

Veel voorkomende fouten

  • Verkeerde voorwaardevolgorde. Een brede voorwaarde verbergt eerst de smallere voorwaarden.
  • END vergeten. Dit is de meest voorkomende syntaxisfout.
  • Gebruik WHEN NULL. Het komt nooit overeen, dus gebruik WHEN col IS NULL.
  • ELSE 0 toevoegen binnen COUNT. Het telt alle rijen.
  • We laten ELSE weg in een UPDATE. Het kan waarden met NULL wissen.
  • Filteren op CASE in WHERE. Het kan voorkomen dat een index wordt gebruikt. Zie onze gids voor SQL-queryoptimalisatie.

Tot slot

CASE WHEN is een kleine functie die veel werk doet. Onthoud drie regels: de eerste echte tak wint, ongeëvenaarde rijen worden NULL zonder een ELSE, en NULL heeft zijn eigen controle nodig. Om te oefenen kunt u een rapport nemen dat u momenteel met meerdere query’s maakt, en proberen dit als één query te produceren met behulp van SUM(CASE ...).

Veelgestelde vragen

Wat doet CASE WHEN in SQL?

Het voegt als-dan-logica toe aan een query. SQL controleert elke voorwaarde op volgorde en retourneert de waarde van de eerste voorwaarde die waar is, of de ELSE-waarde als er geen is.

Wat gebeurt er als er geen ELSE in een CASE-instructie staat?

Rijen die aan geen enkele voorwaarde voldoen, retourneren NULL. Dit is handig binnen COUNT, maar in labels en updates kan het blanco’s of gegevensverlies veroorzaken.

Kan ik CASE gebruiken in een WHERE-clausule?

Ja, omdat het een uitdrukking is. Eenvoudige AND- en OR-voorwaarden zijn echter meestal duidelijker en maken vaker gebruik van een index.

Wat is het verschil tussen eenvoudige en doorzochte CASE?

Simple CASE vergelijkt één expressie met vaste waarden voor gelijkheid. Searched CASE heeft een volledige voorwaarde in elke WHEN, zodat het bereik en NULL-controles kan verwerken.

Kunnen CASE-instructies worden genest?

Ja, een CASE kan in een andere verschijnen. Diep nesten wordt echter moeilijk leesbaar, dus overweeg om voorwaarden te combineren met AND of een opzoektabel te gebruiken.

Blijf leren

Werk met Stack Quora

Hulp nodig met testen, WordPress of SEO?

We helpen teams betere software te leveren en hun sites te laten groeien. Vertel ons waar u mee bezig bent en wij stellen een duidelijke volgende stap voor.

Blijf lezen

Meer handleidingen over testen, AI en moderne ontwikkeling

Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.

Kunstmatige intelligentie

AI-hallucinaties uitgelegd: waarom taalmodellen dingen verzinnen en hoe ze te verminderen

AI-hallucinaties uitgelegd: wat ze zijn, waarom taalmodellen ze produceren, veelvoorkomende typen, hoe je ze kunt verminderen met aarding en aanwijz…

Lees artikel →
DevOps

Omgevingsvariabelen uitgelegd: .env-bestanden, geheimen en configuratie goed gedaan

Omgevingsvariabelen uitgelegd met Python-voorbeelden die we hebben uitgevoerd: ze lezen en instellen, waarom elke waarde een string is, .env-bestand…

Lees artikel →
Softwareontwikkeling

API-snelheidsbeperking uitgelegd: algoritmen, headers en afhandeling van 429-fouten

API-snelheidsbeperking uitgelegd met een simulatie die we hebben uitgevoerd: token-bucket, vast venster, schuifvenster, 429 reacties, headers van sn…

Lees artikel →
Testautomatisering

Spotten in Python: unittest.mock, patch en de fouten die tests doen liegen

Spotten in Python met unittest.mock, getest: Mock en return_value, side_effect, patchen waar een naam wordt gebruikt, spec en autospec, spotdatums e…

Lees artikel →
Softwaretesten

Codedekking uitgelegd: lijn versus filiaaldekking en wat 100% werkelijk betekent

Codedekking uitgelegd met een echte dekking.py-run: dekking van lijnen, vertakkingen en condities, een rapport lezen, waarom 100% dekking nog steeds…

Lees artikel →
Databases & SQL

DELETE versus TRUNCATE versus DROP in SQL: verschillen, terugdraaien en wanneer elk te gebruiken

DELETE versus TRUNCATE versus DROP uitgelegd met geteste SQL: wat elk verwijdert, terugdraaien, triggers, identiteitsreset, snelheid en hoe PostgreS…

Lees artikel →
Databases & SQL

SQL-weergaven uitgelegd: creëer, gebruik en vermijd de valkuilen, met voorbeelden

SQL-weergaven uitgelegd met query's die we hebben uitgevoerd: een weergave maken, live resultaten, kolommen verbergen, prestaties, bijwerkbare en ge…

Lees artikel →
Softwareontwikkeling

TypeScript-interface versus type: echte verschillen, getest met de compiler

TypeScript-interface versus type, gecontroleerd met de echte compiler: wat beide kunnen doen, wat slechts één kan doen, samenvoegen van declaraties,…

Lees artikel →
Softwareontwikkeling

Python *args en **kwargs uitgelegd: flexibele functies met duidelijke voorbeelden

Python *args en **kwargs uitgelegd met code die we hebben uitgevoerd: in- en uitpakken, parametervolgorde, argumenten die alleen trefwoorden en posi…

Lees artikel →
Softwareontwikkeling

Python Lambda-functies: syntaxis, echt gebruik en wanneer u ze niet moet gebruiken

Python lambda-functies uitgelegd met code die we hebben uitgevoerd: syntaxis, sorteren met sleutel, kaart en filter, sluitingen, de laat-bindende va…

Lees artikel →
Kunstmatige intelligentie

Wat zijn AI-agenten? Hoe ze werken, met een eenvoudige agentloop die u kunt uitvoeren

Wat zijn AI-agenten? Een duidelijke gids voor de agentenlus, tools, geheugen en vangrails, met een kleine Python-lus die we hebben uitgevoerd, echte…

Lees artikel →
DevOps

Monitoring versus waarneembaarheid: het echte verschil, met logboeken, statistieken en sporen

Monitoring versus waarneembaarheid uitgelegd: bekende en onbekende fouten, logboeken, statistieken en sporen, een walkthrough voor afrekenincidenten…

Lees artikel →
DevOps

Docker-volumes versus bindingsmounts: bewaar containergegevens op de juiste manier

Docker-volumes versus bind-mounts uitgelegd: waarom containergegevens verdwijnen, benoemde volumes, bind-mounts, tmpfs, Compose-voorbeelden, back-up…

Lees artikel →
Testautomatisering

TDD versus BDD: belangrijkste verschillen, één functie die op beide manieren is gebouwd en wanneer deze moet worden gebruikt

TDD versus BDD uitgelegd met één kortingsfunctie die in beide richtingen is gebouwd: rood-groen-refactor met code die we hebben uitgevoerd, gegeven-…

Lees artikel →
Softwaretesten

Gebruikersacceptatietesten (UAT): proces, checklist en echte voorbeelden

Gebruikersacceptatietesten uitgelegd: wie voert het uit, hoe het verschilt van QA, een proces in zeven stappen, een UAT-testcase-sjabloon, een check…

Lees artikel →
Databases & SQL

SQL NULL-waarden uitgelegd: IS NULL, COALESCE, NULLIF en de te vermijden vallen

SQL NULL-waarden uitgelegd met query's die we hebben uitgevoerd: logica met drie waarden, IS NULL, COALESCE, NULLIF, hoe aggregaten, joins en sorter…

Lees artikel →
Databases & SQL

SQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten

SQL CASE WHEN uitgelegd met vragen die we hebben uitgevoerd: eenvoudige en doorzochte formulieren, volgorde van de voorwaarden, draaipunten met SUM,…

Lees artikel →
Softwareontwikkeling

Wat is JWT? JSON-webtokens uitgelegd met een werkend voorbeeld

Wat is JWT? JSON Web Tokens uitgelegd: de drie delen, een token gebouwd en waarmee is geknoeid in de code die we hebben uitgevoerd, JWT versus sessi…

Lees artikel →
Softwareontwikkeling

JavaScript-gebeurtenislus uitgelegd: call-stack, microtaken en timers met voorbeelden

De JavaScript-gebeurtenislus uitgelegd met code die we hebben uitgevoerd: call-stack, taak- en microtask-wachtrijen, waarom setTimeout 0 niet onmidd…

Lees artikel →
Softwareontwikkeling

Python-generatoren en opbrengst uitgelegd: bespaar geheugen met echte voorbeelden

Python-generatoren en opbrengst uitgelegd met code die we hebben uitgevoerd: hoe ze pauzeren en hervatten, gemeten geheugenbesparingen, pijplijnen, …

Lees artikel →
Kunstmatige intelligentie

Wat zijn inbeddingen? Vectoren en cosinusovereenkomst eenvoudig uitgelegd

Wat zijn insluitingen? Een gids in duidelijke taal over vectoren, cosinusovereenkomst en semantisch zoeken, met een klein voorbeeld dat we hebben ui…

Lees artikel →
DevOps

Implementatie van blauwgroen versus kanarie: verschillen, afwegingen en hoe te kiezen

Blauw-groen versus kanarie-implementatie uitgelegd: hoe elk werkt, kosten, risico's en terugdraaien, stabiele gebruikersbucket die we hebben getest,…

Lees artikel →
Testautomatisering

Schilferige tests: wat de oorzaak ervan is en hoe u ze voorgoed kunt oplossen

Zwakke tests uitgelegd met demo's die we hebben uitgevoerd: de belangrijkste oorzaken, hoe je er een kunt bevestigen en diagnosticeren, goede oploss…

Lees artikel →
Softwaretesten

Belastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden

Belastingtesten versus stresstesten uitgelegd: wat elk bewijst, piek- en soak-tests, de statistieken die er toe doen, waarom gemiddelden misleiden, …

Lees artikel →
Softwaretesten

Testcase versus testscenario: belangrijkste verschillen, voorbeelden en wanneer deze te gebruiken

Testcase versus testscenario uitgelegd: duidelijke definities, een tabel naast elkaar, één functie voor het opnieuw instellen van wachtwoorden, over…

Lees artikel →
Databases & SQL

Optimalisatie van SQL-query's: lees uitvoeringsplannen en repareer langzame query's, met timing

Optimalisatie van SQL-query's getest op een miljoen rijen: lees uitvoeringsplannen, voeg de juiste indexen toe, repareer niet-sargeerbare filters, g…

Lees artikel →
Databases & SQL

SQL UNION versus UNION ALL: verschillen, voorbeelden en geteste prestaties

SQL UNION versus UNION ALL uitgelegd met de query's die we hebben uitgevoerd: duplicaten, de regels volgen beide, een echte databug, gemeten prestat…

Lees artikel →
Softwareontwikkeling

JavaScript Fetch API-tutorial: GET, POST, foutafhandeling en time-outs

Een JavaScript Fetch API-tutorial getest tegen een lokale server: GET en POST, waarom 404 niet gooit, een herbruikbare helper, queryreeksen, time-ou…

Lees artikel →
Softwareontwikkeling

Python-bestandsverwerking: lezen, schrijven, CSV, JSON en pathlib met voorbeelden

Het verwerken van Python-bestanden uitgelegd met code die we hebben uitgevoerd: open modi, met het lezen van grote bestanden, CSV, JSON, pathlib, bi…

Lees artikel →
Softwareontwikkeling

Python-klassen en -objecten: OOP-zelfstudie met echte voorbeelden

Python-klassen en -objecten uitgelegd met code die we hebben uitgevoerd: __init__, methoden, klasse versus instantie-attributen, overerving, eigensc…

Lees artikel →
Kunstmatige intelligentie

Wat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype

Wat is een groot taalmodel? LLM's uitgelegd in duidelijke taal: tokens, inbedding, aandacht, training, temperatuur- en contextvensters, een kleine d…

Lees artikel →
DevOps

Linux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden

Linux-opdrachten voor beginners, gegroepeerd op taak: navigatie, bestanden, logboeken bekijken, grep, pipelines, machtigingen, processen en archieve…

Lees artikel →
Testautomatisering

Selenium versus toneelschrijver: belangrijkste verschillen, code vergeleken en welke te kiezen

Selenium versus Playwright vergeleken: architectuur, wachten, browser- en taalondersteuning, debuggen, dezelfde test in beide tools, migratieadvies …

Lees artikel →
Softwaretesten

Equivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden

Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…

Lees artikel →
Softwaretesten

Ernst versus prioriteit bij het testen van software: verschillen, matrix en echte voorbeelden

Ernst versus prioriteit bij het testen van software uitgelegd: duidelijke definities, een vierwegmatrix met voorbeelden, niveauschalen, wie deze bep…

Lees artikel →
Databases & SQL

Tutorial voor SQL-subquery's: typen, gecorreleerde subquery's en BESTAAN met voorbeelden

Een SQL-subquery-tutorial met query's die we hebben uitgevoerd: scalaire, IN-, FROM- en SELECT-subquery's, gecorreleerde subquery's, EXISTS, de NOT …

Lees artikel →
Databases & SQL

SQL-transacties en ACID uitgelegd: COMMIT-, ROLLBACK- en isolatieniveaus

SQL-transacties en ACID uitgelegd met een bankoverschrijving die we hebben uitgevoerd: COMMIT, ROLLBACK, savepoints, locks, isolatieniveaus, dirty r…

Lees artikel →
Softwareontwikkeling

Git merge vs rebase: verschillen, voorbeelden en wanneer je wat gebruikt

Git merge vs rebase uitgelegd met echte logoutput, een vergelijkingstabel, de gouden regel van rebase en een veilige teamwerkwijze.

Lees artikel →
Softwareontwikkeling

Python list comprehension: syntaxis, voorbeelden en wanneer je het vermijdt

Python list comprehension uitgelegd: syntaxis, filteren, if-else, geneste lussen, gemeten tijden en wanneer een gewone for-lus beter is.

Lees artikel →
Databases & SQL

SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

Begrijp SQL joins stap voor stap met voorbeeldtabellen en queries: INNER, LEFT, RIGHT, FULL, CROSS en SELF, plus veelgemaakte fouten en prestatietips.

Lees artikel →