PIVOT (SQL)
Opération qui transforme des lignes en colonnes — par exemple une longue table de (mois, montant) en une table large avec une colonne par mois. Syntaxe PIVOT native dans SQL Server et Oracle ; dans PostgreSQL, on passe par une agrégation CASE WHEN ou par crosstab().
Cas d'usage : les rapports où l'on veut « les années en ligne, les mois en colonne » plutôt qu'une ligne par (année, mois). Le schéma manuel (portable) : SUM(CASE WHEN mois = 1 THEN montant END) AS janv, SUM(CASE WHEN mois = 2 ...) AS fevr, ..., groupé par année. Limite : les colonnes doivent être connues à l'avance (SQL est typé statiquement) → un « pivot dynamique » suppose de construire la chaîne SQL dans le code. PostgreSQL propose crosstab() dans l'extension tablefunc. Le pivotage se fait souvent plutôt dans la couche de présentation (outils BI, Python/pandas), où il est dynamique. L'opération inverse est UNPIVOT (colonnes → lignes).