Colonnes calculées PostgreSQL : un guide pratique
Travailler avec des colonnes calculées au sein d'une seule requête PostgreSQL peut parfois présenter des défis. Contrairement à certaines autres bases de données SQL, la gestion des colonnes calculées par PostgreSQL nécessite une approche spécifique.
Résolution des incompatibilités de syntaxe SQL
Le code SQL suivant, fonctionnel dans de nombreux autres systèmes de bases de données, échouera dans PostgreSQL :
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2, (total_1 + total_2) AS total_3 FROM data;</code>
PostgreSQL signalera que total_1
et total_2
ne sont pas définis. En effet, PostgreSQL traite les colonnes calculées comme des alias, éphémères pour l'exécution de la requête.
Solution efficace : tirer parti des tables dérivées
La solution consiste à utiliser une table dérivée (ou sous-requête) pour surmonter cette limitation :
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1 + total_2 AS total_3 FROM ( SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2 FROM data ) AS t;</code>
En imbriquant l'instruction SELECT
initiale dans une table dérivée (alias t
), la requête externe peut alors référencer avec succès les alias total_1
et total_2
. Cette méthode n’introduit aucune surcharge de performances.
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!