Maison > base de données > tutoriel mysql > Comment puis-je fusionner efficacement des lignes dans SQL pour combiner des données ?

Comment puis-je fusionner efficacement des lignes dans SQL pour combiner des données ?

DDD
Libérer: 2024-12-31 13:50:10
original
870 Les gens l'ont consulté

How Can I Efficiently Merge Rows in SQL to Combine Data?

Fusionner efficacement les lignes en SQL

En SQL, il est souvent nécessaire de combiner les informations de plusieurs lignes en une seule ligne consolidée. Considérez le tableau suivant :

FK | Field1 | Field2
=====================
3  | ABC    | *NULL*
3  | *NULL* | DEF
Copier après la connexion

Pour obtenir une ligne fusionnée, il est possible d'utiliser des fonctions d'agrégation telles que MAX ou MIN. Ces fonctions ignorent les valeurs NULL, ce qui nous permet de combiner des valeurs non nulles de différentes lignes.

La requête suivante démontre l'utilisation de la fonction d'agrégation MAX pour fusionner les deux lignes :

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;
Copier après la connexion

Dans SQL Server Express 2008 R2, cette requête produit le résultat suivant :

FK  Field1  Field2
--  ------  ------
3   ABC     DEF
Copier après la connexion

Cette requête fusionne efficacement les deux lignes en une seule ligne consolidée. ligne, en préservant la colonne FK et en combinant les valeurs non nulles pour Field1 et Field2.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal