Scénario :
Vous travaillez en tant que développeur SQL Server, vous devez interroger la table dbo.Customer et remplacer les valeurs Null dans la colonne Nom par "Nom inconnu". Quelles fonctions SQL utiliserez-vous pour remplacer la valeur Null par "Nom inconnu" ?
Solution :
Vous pouvez utiliser les fonctions ISNULL ou COALESCE pour remplacer Null par la valeur que nous aimons. Créons la table dbo.Customer et insérons des exemples d'enregistrements en utilisant les instructions ci-dessous.--Create dbo.Customer tableCreate table dbo.Customer(Id int,Name VARCHAR(10),Address VARCHAR( 100))--Insérer des enregistrements dans dbo.Customer tableInsert into dbo.CustomerValues(1,'Aamir','XyZ Address'),(2,'Raza',Null),(3,null,'abc address')Utilisons les fonctions ISNULL ou COALESCE pour remplacer Null par "Nom inconnu".Select Id,ISNULL(Name,'Unknown Name') AS NameByISNull,COALESCE(Name,'Unknown Name') NamebyCoalesce,Address From dbo.Client
Comment remplacer Null par des valeurs dans SQL Server - Tutoriel TSQL |
Comme vous pouvez le voir, nous avons utilisé ISNULL et remplacé le Null par "Unknown Name" mais il a renvoyé "Unknown Na", il n'a pas renvoyé un "Unknown Name" complet. La raison, le type de données d'une expression ISNULL est le type de données de la première entrée (colonne Nom) qui est varchar(10), cela signifie qu'il nous renverra toujours 10 caractères.
Si vous avez des situations comme celle-ci, vous feriez mieux d'utiliser COALESCE. Le type de données d'une expression COALESCE est le type de données de l'argument d'entrée avec la priorité de type de données la plus élevée. Dans notre cas, "Nom inconnu" est composé de 12 caractères et il a choisi de l'utiliser à la place du type de données de la colonne Nom qui est varchar(10).