Berekende kolommen en prioriteit van expressies
Rekenkundige bewerkingen, concatenatie en operatorprioriteit in SELECT-lijsten
Berekende kolommen en prioriteit van expressies is een gratis Voorbereiding op programmeerinterviews-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Voorbereiding op programmeerinterviews. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.
Berekende kolommen in SELECT
Een berekende kolom is een expressie in SELECT die een waarde afleidt in plaats van die rechtstreeks te lezen — bijvoorbeeld price * quantity. Geef zo'n kolom altijd een duidelijke alias.
SELECT product,
price,
quantity,
price * quantity AS line_total
FROM order_items;Rekenkundige operatoren
SQL heeft de rekenkundige operatoren die je verwacht: +, -, *, /, plus modulo. Het type van het resultaat volgt uit de operanden — en daar zit de volgende valkuil.
SELECT 7 + 3 AS sum_val,
7 - 3 AS diff_val,
7 * 3 AS prod_val,
7 % 3 AS remainder;Valkuil bij gehele deling
Let op: als je twee gehele getallen deelt, krijg je gehele deling. 5 / 2 geeft dus 2 en niet 2,5. Los dit op door één kant naar decimal te casten of met 1,0 te vermenigvuldigen.
SELECT 5 / 2 AS int_div, -- 2
5 * 1.0 / 2 AS real_div, -- 2.5
CAST(5 AS DECIMAL) / 2 AS cast_div; -- 2.5Voorrang van operatoren
SQL volgt de normale wiskundige voorrangsregels: * en / worden vóór + en - uitgevoerd. Daarom is 2 + 3 * 4 gelijk aan 14 en niet aan 20. Haakjes hebben altijd voorrang.
SELECT 2 + 3 * 4 AS no_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Voorrang in een echte query voor kortingen
Valkuilen met voorrang zijn dol op bedrijfslogica. Voor een prijs met korting is price - price * rate correct, omdat * eerst wordt uitgevoerd. Controleer altijd of de groepering die de database gebruikt logisch klopt.
SELECT price,
discount_rate,
price - price * discount_rate / 100 AS net_price
FROM products;Teksten samenvoegen
Hoe je tekst samenvoegt, hangt af van de database: || in Postgres en standaard-SQL, + in SQL Server en CONCAT() in MySQL. CONCAT() is de veilige, draagbare keuze.
-- Postgres / standard
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
-- Portable
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;NULL maakt rekenkundige bewerkingen ongeldig
Een belangrijke regel: elke berekening met NULL geeft NULL. base_salary + bonus is dus NULL voor iedereen bij wie een bonus ontbreekt. Gebruik COALESCE rond risicovolle kolommen om een standaardwaarde op te geven.
SELECT base_salary,
bonus,
base_salary + bonus AS unsafe_total,
base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;Samenvoegen en NULL per dialect
NULL heeft ook gevolgen voor tekst, en dialecten verschillen: Postgres laat de hele tekenreeks verdwijnen, terwijl CONCAT in SQL Server NULL als leeg behandelt. Gebruik COALESCE rond elk onderdeel voor voorspelbare uitvoer.
SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;Functies in expressies
Je kunt berekende kolommen moeiteloos combineren met functies zoals ROUND, ABS of UPPER. Een functieaanroep is gewoon een andere expressie, dus je kunt die direct in je berekening nesten.
SELECT product,
ROUND(price * quantity * 1.0, 2) AS line_total,
UPPER(product) AS product_caps
FROM order_items;Typeconversie en CAST
Als de typen van operanden verschillen, voert SQL een impliciete typeconversie uit die je kan verrassen. Wees expliciet met CAST(expr AS type) — interviewers zien dat als zorgvuldige, defensieve code.
SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;Booleaanse expressies als kolommen
Een vergelijking zoals price > 100 is zelf een expressie. Postgres kan die als true/false selecteren, maar de draagbare oplossing gebruikt CASE om 1/0 of een label op te leveren.
-- Portable
SELECT product,
CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;Korte controle
Evalueer de expressie.
Samenvatting
Samenvatting: geef je berekende kolommen een alias. Cast voor decimale deling, let op de voorrangsregels, gebruik CONCAT() voor draagbare tekst — en onthoud dat NULL rekenkundige bewerkingen ongeldig maakt, dus bescherm ze met COALESCE.
Leer Voorbereiding op programmeerinterviews met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 90
- Lessen
- 360
Veelgestelde vragen
Is de les “Berekende kolommen en prioriteit van expressies” gratis?
Ja — de volledige tekst van “Berekende kolommen en prioriteit van expressies” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Voorbereiding op programmeerinterviews wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.
Wat leer ik in “Berekende kolommen en prioriteit van expressies”?
Rekenkundige bewerkingen, concatenatie en operatorprioriteit in SELECT-lijsten Je oefent met Voorbereiding op programmeerinterviews door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Voorbereiding op programmeerinterviews te beginnen?
Ervaring vooraf is niet nodig. Voorbereiding op programmeerinterviews op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Berekende kolommen en prioriteit van expressies”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Voorbereiding op programmeerinterviews?
Ja. Elke les over Voorbereiding op programmeerinterviews bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Kolommen projecteren en valkuilen met aliassen
- Berekende kolommen en prioriteit van expressies
- DISTINCT versus GROUP BY voor uniciteit
- CASE-expressies in SELECT