我有一个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的操作
id为此使用合并:http : //msdn.microsoft.com/zh- cn/library/ms190349.aspx
update Person set Car = coalesce(@Car, Car), HairColour = coalesce(@HairColour, HairColour)