Maison > base de données > tutoriel mysql > Comment remplir des valeurs NULL dans SQL en utilisant la valeur non NULL la plus récente ?

Comment remplir des valeurs NULL dans SQL en utilisant la valeur non NULL la plus récente ?

DDD
Libérer: 2025-01-05 16:52:39
original
256 Les gens l'ont consulté

How to Fill NULL Values in SQL Using the Most Recent Non-NULL Value?

Comment remplacer les valeurs NULL dans une ligne par une valeur connue précédente dans SQL

Dans la gestion de bases de données, des situations peuvent survenir où des valeurs NULL doivent être remplacé par des données significatives. Un scénario courant est celui où des données manquent dans une colonne et doivent être déduites des lignes voisines.

Considérez un tableau avec deux colonnes, « date » et « numéro » :

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

L'objectif est de remplacer les valeurs NULL de la colonne « numéro » par la valeur non NULL la plus récente de la colonne « date ». Cela implique que si le « numéro » de la date 2 est NULL, il doit être remplacé par 3 (la valeur connue précédente). De même, les valeurs NULL des dates 4 et 5 doivent être remplacées par 5.

Dans SQL Server, la requête suivante peut être utilisée pour y parvenir :

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

La requête utilise une sous-requête pour trouver la première valeur non NULL dans la colonne 'Val' pour chaque ligne avec une valeur NULL. La fonction ISNULL est ensuite utilisée pour remplacer la valeur NULL par la valeur non NULL sélectionnée.

Le résultat de la requête est le suivant :

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

Les valeurs NULL dans le 'numéro " La colonne " a été remplacée avec succès par la valeur non NULL la plus récente de la colonne " date ". Cette technique peut être utile pour combler les données manquantes et garantir l'intégrité des données dans divers scénarios de bases de données.

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