Maison >base de données >tutoriel mysql >Comment puis-je répliquer les lignes de résultats SQL et attribuer des numéros de ligne uniques ?
Réplication des lignes de résultats et attribution de numéros de ligne en SQL
Le but de cette question est de modifier une requête SQL existante pour générer des lignes supplémentaires pour entrées avec un nombre supérieur à 1. Chaque ligne répliquée doit se voir attribuer un numéro d'index unique. Cette amélioration vise à fournir une représentation plus détaillée des données, permettant une analyse et une interprétation plus faciles.
Solution de bases de données croisées utilisant une table de nombres
Pour obtenir ce résultat sur plusieurs bases de données, on peut utiliser une table "Nombres". Cette table contient une colonne à incrémentation automatique qui fonctionne comme numéro d'index. En joignant la table d'origine à la table Numbers en utilisant une condition selon laquelle le nombre de la table d'origine est supérieur ou égal au nombre de la table Numbers, nous pouvons répliquer les lignes en fonction de la valeur du nombre.
La requête suivante le démontre approche :
SELECT value, count, number FROM table JOIN Numbers ON table.count >= Numbers.number
Cette requête devrait fonctionner efficacement dans Oracle, SQL Server, MySQL et PostgreSQL, ainsi que dans les bases de données prenant en charge les expressions de table courantes (CTE).
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!