一尘不染

SQL:仅当该列值为null时,如何才能更新该列上的值?

sql

我有一个SQL问题,对某些人来说可能是基本问题,但使我感到困惑。

这是表“人”的列名的示例:PersonalID,FirstName,LastName,Car,HairColour,FavDrink,FavFood

假设我输入了该行:

121312,Rayna,Pieterson,BMW123d,Brown,NULL,NULL

现在,我要更新此人的值,但仅当新值不为null时,才更新:

121312,Rayna,Pieterson,NULL,金发,Fanta,NULL

新行必须为:

121312,Rayna,Pieterson,BMW123d,Blonde,Fanta,NULL

所以我在想一些类似的事情:

更新Person(PersonalID,FirstName,LastName,Car,HairColour,FavDrink,FavFood)设置Car
= @Car(其中@Car不为null),HairColour = @HairColour(其中@HairColour …)…等

我唯一关心的是,我无法在查询末尾对所有条件进行分组,因为它将要求所有值具有相同的条件。如果@HairColour不为空,我是否可以做类似Update
HairColour的操作


阅读 130

收藏
2021-03-17

共1个答案

一尘不染

id为此使用合并:http :
//msdn.microsoft.com/zh-
cn/library/ms190349.aspx

update Person
set Car = coalesce(@Car, Car), HairColour = coalesce(@HairColour, HairColour)
2021-03-17