2011-09-13 57 views
0

我想要更新列的最大值为当前col值或新值I通过。在伪代码:更新最大值为2的列值

更新表1组雇员= MAX(雇员,30)其中id = 23

因此,在上述情况下: 如果员工是目前为20,新的值将成为30 如果员工是目前50,值将保持50

我该怎么做?是否有一个简单的标准功能可用(我宁愿不使用case语句)

谢谢!

+0

对不起我的好奇,但为什么你会改变一个列到它的当前值?如果你需要,我可以找到一个脚本来让你的服务器变得更容易。 –

回答

1
Update table1 
set employees = (case when employees < 30 then 30 else employees end) 
where id = 23 
2

你可以使用一个where子句employees < 30只更新行:

update table1 
set employees = 30 
where id = 23 and employees < 30 
+0

+1 - 是否需要最小数量的数据更改 – JNK

+0

谢谢!好的建议,但不完全是我需要的。我的错误,我应该更好地澄清:我想在超过1列(高达100)运行MAX语句。 所以声明看起来更像是这样的: UPDATE table1的SET 员工= MAX(员工,30), streetname = MAX(streetname, '艾比路') 周转率= MAX(成交500000) WHERE ID = 23 – Flo

+0

@Floran,在这种情况下,我想我的答案会适合你,你只需要多个'case'语句。 'case'语句与MAX函数的功能相同。尽管如果您只更新一列,@Andomar仍然有更好的解决方案。 – PaulStock