0Pricing
Coding Interview Prep · Leçon

Projection de colonnes et pièges liés aux alias

Pourquoi vous ne pouvez pas référencer un alias de SELECT dans WHERE et comment les recruteurs testent la portée des alias

Projection de colonnes et pièges liés aux alias est une leçon Coding Interview Prep gratuite sur CoddyKit. Ceci est la leçon 1 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 Coding Interview Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Coding Interview Prep comprend 4 leçons au total.

Projection : choisir ses colonnes

Le choix des colonnes renvoyées par une requête s’appelle la projection — c’est ce que vous faites chaque fois que vous écrivez SELECT. Indiquez-les explicitement dans le code réel et gardez SELECT * pour une exploration rapide.

SELECT id, first_name, email
FROM employees;

Pourquoi les recruteurs n’aiment pas SELECT *

Pourquoi les recruteurs n’aiment-ils pas SELECT * dans le code d’une application ? C’est fragile — l’ordre des colonnes peut changer —, cela gaspille de la bande passante, nuit à l’utilisation des index et masque ce dont vous avez réellement besoin. Indiquez vos colonnes. 👍

Donner un alias à une colonne avec AS

Un alias renomme une colonne dans votre résultat. Utilisez AS pour plus de clarté : c’est particulièrement utile pour les colonnes calculées, en donnant un en-tête clair et lisible à des expressions peu pratiques comme salaire * 12.

SELECT first_name AS name,
       salary * 12 AS annual_salary
FROM employees;

Mettre entre guillemets les alias contenant des espaces

Si un alias contient des espaces ou un mot réservé, vous devez le mettre entre guillemets. La méthode portable et standard consiste à utiliser des guillemets doubles. Conseil : utilisez simplement des noms composés de mots séparés par des traits de soulignement et évitez complètement les guillemets.

SELECT salary AS "Annual Pay"
FROM employees;

Le grand piège : la portée de l’alias dans WHERE

Voici le piège le plus fréquemment évalué : définissez un alias dans SELECT, puis filtrez dessus dans WHERE, et cela échoue. WHERE s’exécute avant SELECT, donc cet alias n’existe pas encore.

-- This raises an error
SELECT salary * 12 AS annual_salary
FROM employees
WHERE annual_salary > 100000;

La raison : l’ordre d’exécution logique

La solution consiste à connaître l’ordre logique des clauses : FROM, WHERE, GROUP BY, HAVING, SELECT, puis ORDER BY. SELECT intervient presque à la fin, donc les clauses précédentes ne peuvent pas voir ses alias.

Solution 1 : répéter l’expression

La solution la plus portable est simple : il suffit de répéter l’expression dans WHERE au lieu d’utiliser l’alias. C’est un peu verbeux, mais cela fonctionne dans toutes les bases de données, à chaque fois.

SELECT salary * 12 AS annual_salary
FROM employees
WHERE salary * 12 > 100000;

Solution 2 : utiliser une sous-requête ou un CTE

Si répéter une longue expression vous semble peu élégant, calculez-la d’abord dans une sous-requête ou un CTE. L’alias y devient une véritable colonne, et le WHERE extérieur peut donc filtrer dessus.

SELECT *
FROM (
  SELECT first_name, salary * 12 AS annual_salary
  FROM employees
) t
WHERE annual_salary > 100000;

Où les alias sont autorisés : ORDER BY

Bonne nouvelle : ORDER BY peut utiliser un alias de SELECT, car il s’exécute après SELECT. Ainsi, WHERE, GROUP BY et HAVING ne peuvent pas voir les alias, mais ORDER BY le peut.

SELECT first_name, salary * 12 AS annual_salary
FROM employees
ORDER BY annual_salary DESC;

Différences entre les dialectes à mentionner

Il est utile de le mentionner : MySQL autorise assez largement les alias dans GROUP BY et HAVING, tandis que Postgres et SQL Server respectent la norme. Raisonnez selon l’ordre logique, puis signalez l’exception.

Alias de table et alias de colonne

Ne les confondez pas. Un alias de table abrège le nom d’une table et est visible partout, même dans WHERE. Un alias de colonne renomme la sortie et ne l’est pas : c’est exactement l’inverse.

SELECT e.first_name, e.salary AS pay
FROM employees AS e
WHERE e.salary > 50000;

Vérification rapide

Testez le piège fondamental.

Récapitulatif

Récapitulatif : préférez les colonnes explicites à SELECT *, et utilisez AS pour créer des alias. Un alias de SELECT est invisible dans WHERE/GROUP BY/HAVING, mais fonctionne dans ORDER BY. Pour corriger le problème, répétez l’expression ou utilisez un CTE.

Questions Fréquemment Posées

La leçon « Projection de colonnes et pièges liés aux alias » est-elle gratuite ?

Oui — le texte complet de « Projection de colonnes et pièges liés aux alias » 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 Coding Interview Prep, passe à CoddyKit PRO. Le cours Coding Interview Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Projection de colonnes et pièges liés aux alias » ?

Pourquoi vous ne pouvez pas référencer un alias de SELECT dans WHERE et comment les recruteurs testent la portée des alias Tu pratiques Coding 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 Coding Interview Prep ?

Aucune expérience préalable n'est requise. Coding 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 1 sur 4.

Combien de temps prend la leçon « Projection de colonnes et pièges liés aux alias » ?

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 Coding Interview Prep ?

Oui. Chaque leçon Coding 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 à Coding Interview Prep