Maison > base de données > tutoriel mysql > Comment remplacer les valeurs NULL par des valeurs non NULL précédentes dans SQL ?

Comment remplacer les valeurs NULL par des valeurs non NULL précédentes dans SQL ?

Susan Sarandon
Libérer: 2025-01-03 02:45:38
original
633 Les gens l'ont consulté

How to Replace NULLs with Previous Non-NULL Values in SQL?

Récupération des valeurs manquantes dans SQL : remplacement des valeurs NULL par des valeurs connues précédentes

Les tables de données contiennent souvent des valeurs manquantes représentées par des valeurs NULL. Pour optimiser l'analyse et maintenir l'intégrité des données, il devient crucial de remplacer les valeurs NULL par des valeurs significatives. Une stratégie courante consiste à remplacer chaque valeur NULL par la dernière valeur non NULL connue dans une ligne précédente.

Pour y parvenir dans SQL Server, envisagez la solution suivante :

DECLARE @Table TABLE(
        ID INT,
        Val INT
)

INSERT INTO @Table (ID,Val) SELECT 1, 3
INSERT INTO @Table (ID,Val) SELECT 2, NULL
INSERT INTO @Table (ID,Val) SELECT 3, 5
INSERT INTO @Table (ID,Val) SELECT 4, NULL
INSERT INTO @Table (ID,Val) SELECT 5, NULL
INSERT INTO @Table (ID,Val) SELECT 6, 2

SELECT  *,
        ISNULL(Val, (SELECT TOP 1 Val FROM @Table WHERE ID < t.ID AND Val IS NOT NULL ORDER BY ID DESC))
FROM    @Table t
Copier après la connexion

Cette requête fonctionne comme suit :

  • La requête interne récupère la dernière valeur non NULL pour chaque ligne en utilisant une sous-requête avec un ORDER BY clause.
  • La requête externe joint la table à elle-même à l'aide de la colonne ID.
  • La fonction ISNULL est utilisée pour vérifier les valeurs NULL. Si la colonne Val de la ligne actuelle est NULL, elle est remplacée par la valeur récupérée par la sous-requête.

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