0Pricing
SQL Interview Prep · Leçon

Colonnes calculées et priorité des expressions

Arithmétique, concaténation et priorité des opérateurs dans les listes SELECT

Colonnes calculées et priorité des expressions est une leçon SQL Interview Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Interview Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Interview Prep comprend 4 leçons au total.

Colonnes calculées dans SELECT

Une colonne calculée est une expression dans SELECT qui dérive une valeur au lieu de lire directement une valeur existante, comme price * quantity. Donnez-lui toujours un alias clair.

SELECT product,
       price,
       quantity,
       price * quantity AS line_total
FROM order_items;

Opérateurs arithmétiques

SQL possède les opérateurs mathématiques auxquels vous vous attendez : +, -, *, /, ainsi que le modulo. Le type du résultat dépend des opérandes, et c’est là que se cache le prochain piège.

SELECT 7 + 3 AS sum_val,
       7 - 3 AS diff_val,
       7 * 3 AS prod_val,
       7 % 3 AS remainder;

Le piège de la division entière

Attention : diviser deux entiers produit une division entière, donc 5 / 2 donne 2 et non 2.5. Pour corriger cela, convertissez un côté en nombre décimal avec CAST ou multipliez par 1.0.

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.5

Priorité des opérateurs

SQL suit la priorité mathématique habituelle : * et / sont exécutés avant + et -. Ainsi, 2 + 3 * 4 vaut 14 et non 20. Les parenthèses prennent le dessus sur tout le reste.

SELECT 2 + 3 * 4      AS no_parens,  -- 14
       (2 + 3) * 4    AS with_parens; -- 20

La priorité dans une vraie requête de remise

Les erreurs de priorité aiment se glisser dans la logique métier. Pour calculer un prix remisé, price - price * rate est correct, car * est exécuté en premier. Vérifiez toujours mentalement le regroupement réellement utilisé par le moteur.

SELECT price,
       discount_rate,
       price - price * discount_rate / 100 AS net_price
FROM products;

Concaténation de chaînes

La concaténation de texte dépend de la base de données : || dans Postgres et en SQL standard, + dans SQL Server, et CONCAT() dans MySQL. CONCAT() est le choix sûr et portable.

-- 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 contamine les calculs

Point essentiel : tout calcul avec NULL donne NULL. Ainsi, base_salary + bonus vaut NULL pour toute personne dont le bonus est manquant. Entourez les colonnes à risque avec COALESCE pour fournir une valeur par défaut.

SELECT base_salary,
       bonus,
       base_salary + bonus            AS unsafe_total,
       base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;

Concaténation et NULL selon le dialecte

NULL affecte également le texte, et les dialectes diffèrent : Postgres fait disparaître toute la chaîne, tandis que CONCAT de SQL Server traite NULL comme une chaîne vide. Entourez chaque élément de COALESCE pour obtenir une sortie prévisible.

SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;

Fonctions dans les expressions

Les colonnes calculées peuvent facilement intégrer des fonctions comme ROUND, ABS ou UPPER. Un appel de fonction n’est qu’une autre expression : vous pouvez donc l’imbriquer directement dans vos calculs.

SELECT product,
       ROUND(price * quantity * 1.0, 2) AS line_total,
       UPPER(product)                   AS product_caps
FROM order_items;

Conversion implicite des types et CAST

Lorsque les types des opérandes diffèrent, SQL effectue une conversion implicite qui peut vous surprendre. Soyez explicite avec CAST(expr AS type) : les personnes qui vous évaluent y voient un code soigneux et défensif.

SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;

Expressions booléennes comme colonnes

Une comparaison comme price > 100 est elle-même une expression. Postgres peut la sélectionner sous forme de vrai/faux, mais la réponse portable consiste à l’entourer d’un CASE pour produire 1/0 ou un libellé.

-- Portable
SELECT product,
       CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;

Vérification rapide

Évaluez l’expression.

Récapitulatif

Récapitulatif : donnez un alias à vos colonnes calculées. Utilisez CAST pour la division décimale, faites attention à la priorité, utilisez CONCAT() pour un texte portable, et rappelez-vous que NULL contamine les calculs : protégez-les donc avec COALESCE.

Questions Fréquemment Posées

La leçon « Colonnes calculées et priorité des expressions » est-elle gratuite ?

Oui — le texte complet de « Colonnes calculées et priorité des expressions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Interview Prep, passe à CoddyKit PRO. Le cours SQL Interview Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Colonnes calculées et priorité des expressions » ?

Arithmétique, concaténation et priorité des opérateurs dans les listes SELECT Tu pratiques SQL Interview Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Interview Prep ?

Aucune expérience préalable n'est requise. SQL Interview Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Colonnes calculées et priorité des expressions » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Interview Prep ?

Oui. Chaque leçon SQL Interview Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Projection de colonnes et pièges liés aux alias
  2. Colonnes calculées et priorité des expressions
  3. DISTINCT ou GROUP BY pour l’unicité
  4. Expressions CASE dans SELECT
← Retour à SQL Interview Prep