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!