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

这是表“Person”的列名的示例:
个人ID,名字,姓氏,汽车,发色,FavDrink,FavFood

假设我输入了该行:



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



新行必须为:



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



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

最佳答案

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

update Person
set Car = coalesce(@Car, Car), HairColour = coalesce(@HairColour, HairColour)

10-08 04:10