我正在尝试更新 SQL 2012 中的表,其中 CategoryNumber 值应该与下面的名称值相对应,但似乎我的语法是错误的。
Update mytable
SET mytable.CategoryNumber IN ('02','05','10')
where mytable.name IN ('peter','michael','ralf')
答案1
IN
是定义一组值的运算符,因此它被视为无序列表。您无法按照您尝试的方式执行此操作。我建议逐个执行:
Update mytable
SET mytable.CategoryNumber = '02'
where mytable.name = 'peter';
Update mytable
SET mytable.CategoryNumber = '05'
where mytable.name = 'michael';
Update mytable
SET mytable.CategoryNumber = '10'
where mytable.name = 'ralf';