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
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
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
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!