Maison >base de données >tutoriel mysql >Comment regrouper correctement les colonnes avec alias (y compris les instructions CASE) dans SQL Server ?

Comment regrouper correctement les colonnes avec alias (y compris les instructions CASE) dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-24 10:13:10443parcourir

How to Correctly GROUP BY Aliased Columns (Including CASE Statements) in SQL Server?

Préservation du fonctionnement GROUP BY des colonnes d'alias dans SQL Server

Dans SQL Server, vous pouvez rencontrer des difficultés lors de l'exécution d'opérations GROUP BY à l'aide de colonnes d'alias. Cet article explore la syntaxe correcte pour effectuer des opérations GROUP BY sur les colonnes avec alias et vérifie si cette syntaxe fonctionne également pour les colonnes avec alias d'instruction CASE.

Pour effectuer une opération GROUP BY sur une colonne avec un alias, l'expression utilisée pour créer l'alias doit être citée dans la clause GROUP BY. Par exemple :

<code class="language-sql">SELECT LastName + ', ' + FirstName AS 'FullName'
FROM customers
GROUP BY LastName + ', ' + FirstName</code>

Dans ce scénario, l'alias « FullName » est créé à l'aide de l'expression « LastName », « FirstName ». Pour regrouper par cet alias, il faut préciser l'expression complète : 'LastName', 'FirstName'.

De plus, la même syntaxe peut être appliquée aux colonnes d'alias d'instruction CASE :

<code class="language-sql">SELECT
    CASE
        WHEN LastName IS NULL THEN FirstName
        WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName
    END AS 'FullName'
FROM customers
GROUP BY
    LastName, FirstName</code>

Dans ce cas, l'instruction CASE est utilisée pour déterminer la valeur de l'alias "FullName" en fonction des valeurs des colonnes "LastName" et "FirstName". Pour regrouper par cette colonne d'alias, référencez les expressions 'LastName', 'FirstName' et 'FirstName'. Ainsi, la clause GROUP BY peut contenir :

<code class="language-sql">GROUP BY CASE
        WHEN LastName IS NULL THEN FirstName
        WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName
    END</code>

Cependant, il est important de noter que lors de l'utilisation de l'instruction CASE pour aliaser des colonnes dans une opération GROUP BY, toutes les expressions de colonne référencées doivent apparaître dans la clause GROUP BY. Cela garantit que les résultats de l’agrégation sont valides et précis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn