Maison > base de données > tutoriel mysql > Comment puis-je dupliquer des lignes de résultats SQL et attribuer des numéros de ligne en fonction d'une colonne de nombre ?

Comment puis-je dupliquer des lignes de résultats SQL et attribuer des numéros de ligne en fonction d'une colonne de nombre ?

Susan Sarandon
Libérer: 2025-01-06 13:54:40
original
726 Les gens l'ont consulté

How Can I Duplicate SQL Result Rows and Assign Row Numbers Based on a Count Column?

Duplication des lignes de résultats avec numérotation des lignes en SQL

Dans de nombreuses opérations de base de données, il est souvent nécessaire d'étendre les lignes de résultats et d'attribuer des numéros uniques à eux. Cette technique est particulièrement utile lorsque vous travaillez avec des données comportant un nombre de lignes variable. Par exemple, considérons les données suivantes :

value | count
------+------
foo   |     1
bar   |     3
baz   |     2
Copier après la connexion

Pour transformer ces données dans un format dans lequel les lignes avec des nombres supérieurs à 1 sont répétées et chaque ligne se voit attribuer un index, plusieurs approches peuvent être adoptées.

Utiliser une table de nombres

Une solution courante consiste à utiliser une opération de jointure avec une table de nombres. Ce tableau contient une séquence de nombres qui peuvent être utilisés pour générer l'indexation souhaitée.

SELECT value, count, number
FROM table
JOIN Numbers
    ON table.count >= Numbers.number
Copier après la connexion

Cette méthode génère le résultat souhaité pour toutes les principales bases de données, notamment Oracle, SQL Server, MySQL et PostgreSQL.

Exemple d'implémentation (SQL Server)

WITH N AS (SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS number
              FROM sys.objects)
SELECT value, count, number
FROM table
JOIN N
    ON table.count >= N.number;
Copier après la connexion

Cette requête modifiée utilise une expression de table commune (CTE) nommé « N » pour créer une table de nombres et obtenir le résultat souhaité.

Considérations spécifiques à la base de données

Bien que la solution ci-dessus soit compatible avec plusieurs bases de données, il peut exister des approches plus spécifiques aux bases de données qui offrent des optimisations supplémentaires ou des avantages en termes de performances. Il est recommandé d'explorer ces options pour des environnements de bases de données spécifiques.

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