假设我有Table1
和Table2
,如下所示:
表1
Nmae ColA ColB
---------------
Peter 25
Jason 52
Tom 74
Jim 65
表2
Values Prize
-------------
25 ABC
50 ABC1
75 ABC2
100 ABC3
现在,我想根据ColB
中的值更新Table1
中的ColA
。
例如如果为value >= 25 and < 50
,则为ABC
。如果为value >= 50 and < 75
,则为ABC1
。
所需的输出:
Name ColA ColB
----------------
Peter 25 ABC
Jason 52 ABC1
Tom 76 ABC2
Jim 65 ABC1
我试图通过连接两个表来更新ColB来解决此问题,但是卡住了。我知道可以使用CASE WHEN轻松完成此操作。但是,我担心如果规则更改或更改,我必须在多个SP中修改代码。
答案 0 :(得分:0)
您可以使用子查询而不是CASE WHEN轻松地执行UPDATE
update table1 set ColB = (select top 1 Prize
from table2
where Values <= ColA order by Values desc)