En SQL, les colonnes calculées sont un outil précieux pour étendre les modèles de données dans les vues. Ils vous permettent de dériver de nouvelles valeurs à partir de colonnes existantes, ouvrant ainsi la voie à une analyse et une présentation plus sophistiquées. Cependant, que se passe-t-il lorsque vous devez utiliser une colonne calculée elle-même dans le cadre d'un calcul ultérieur au sein de la même vue ?
Considérez un scénario courant dans lequel vous disposez d'un tableau avec les colonnes suivantes :
Dans l'une de vos vues, vous avez créé une colonne calculée appelée calccolumn1 en ajoutant simplement ColumnA et ColumnB. Maintenant, vous souhaitez utiliser calccolumn1 pour calculer une autre colonne, calccolumn2, en divisant calccolumn1 par ColumnC.
Au départ, vous pouvez tenter d'écrire la requête comme suit :
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2
Malheureusement, cela ne fonctionnera pas car calccolumn2 ne peut pas référencer le calcul précédemment calculé. calccolumn1 directement.
Une solution à ce problème consiste à utiliser une requête imbriquée :
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
Cette méthode crée une sous-requête qui calcule calccolumn1. La requête principale peut ensuite utiliser calccolumn1 de la sous-requête dans ses calculs.
Une autre option, si possible, consiste simplement à répéter le calcul pour calccolumn1 dans la requête principale :
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
Cette approche évite la complexité d'une requête imbriquée, surtout lorsque le calcul pour calccolumn1 est relativement simple.
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!