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
Libérer: 2025-01-24 10:13:10
original
395 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal