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

Comment remplacer les valeurs NULL par la valeur non NULL précédente dans SQL ?

Barbara Streisand
Libérer: 2025-01-04 10:42:34
original
871 Les gens l'ont consulté

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

Remplacer les valeurs NULL par la valeur connue précédente dans SQL

Dans les bases de données SQL, il est courant de rencontrer des tables avec des valeurs manquantes ou NULL. Dans certains scénarios, il est nécessaire de remplacer ces valeurs NULL par la valeur connue la plus récente d'une ligne précédente. Ceci est particulièrement utile lorsque vous travaillez avec des données de séries chronologiques, où les valeurs manquantes peuvent perturber l'analyse des données.

Exemple :

Considérez le tableau suivant représentant une série chronologique de nombres. indexé par date :

date   number
----   ------
1      3
2      NULL
3      5
4      NULL
5      NULL
6      2
Copier après la connexion

Nous souhaitons remplacer les valeurs NULL dans la colonne numérique par la valeur connue la plus récente de la ligne précédente. Par exemple, la date 2 doit être remplie par 3, les dates 4 et 5 doivent être remplies par 5, et ainsi de suite.

Solution utilisant SQL Server :

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 utilise une sous-requête pour rechercher la valeur non NULL la plus récente pour chaque ligne avec une valeur NULL. La fonction ISNULL remplace ensuite les valeurs NULL par la valeur sélectionnée. Le résultat sera un tableau avec les valeurs NULL remplacées par la valeur connue précédente.

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