Ceci est mon SQL dans le server SQL:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
Parfois, la colonne peut être nulle. Quand c'est le cas, je veux le replace par une valeur par défaut.
Cas d'utilisation
select case when user_Name is null then "default value" else user_name end from table
SELECT IsNull(user_Name, 'Unknown Name') AS user_Name, IsNull(user_pass, 'Unknown Pass') AS user_pass, IsNull(user_hometown, 'Unknown Hometown') AS user_hometown FROM user_baseinfo
Sachez cependant que IsNull
a la priorité du second type d'argument. Cela peut provoquer un découpage indésirable de la valeur par défaut, si la colonne du premier argument a un type, qui est plus court que celui de la valeur par défaut. Dans de tels cas, Coalesce
est un meilleur choix.
Voici un exemple montrant la différence entre IsNull
et Coalesce
:
CREATE TABLE #Sample (Value1 varchar(100), Value2 char(3)); INSERT INTO #Sample (Value1, Value2) VALUES ('AAA', 'AAA'), ('BBB', 'BBB'), ('CCC', 'CCC'), (NULL, NULL); SELECT IsNull(Value1, 'Default') AS Value1, IsNull(Value2, 'Default') AS Value2 FROM #Sample; SELECT Coalesce(Value1, 'Default') AS Value1, Coalesce(Value2, 'Default') AS Value2 FROM #Sample;
Voir que Default
à Def
lorsque IsNull
est utilisé.
Pour les lignes existantes (En supposant que la colonne est varchar
)
ALTER TABLE TableName ADD CONSTRAINT ConstraintName DEFAULT N'Default Value' FOR ColumnName;
Vous voulez utiliser le mot-key DEFAULT
.
Exemple tiré du site Web
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'Sandnes' )
Voici un lien vers le site.
J'utilise sql server management studio pour faire de même