更新时间:2023-01-23 10:32:57
尝试这样的事情:UPDATE t1 SET t1.sal = t2.sal
FROM \\ temp AS t1 INNER JOIN (SELECT id, CASE WHEN dep = ' it' 那么 sal + 1000
WHEN dep = ' ac' THEN sal + 2000
ELSE sal
END AS sal
FROM emp
) AS t2 ON t1.id = t2.id
update \\ temp set sal = sal +
(
case 何时 dep = ' 它' 然后 1000
当 dep = ' ac' 然后 2000
else 0
end
)
update emp e1 set e1.sal = e1.sal +( select case 当 e1.dep = ' it' ' 1000'
when e1.dep = ' ac' then ' 2000'
else ' 0'
端跨度>)
ID NAME SAL DEP LOC
---- ------ ---------- ---------- ----- -----
1 viki 1000 it cb
2 allen 2000 ac ch
3 smith 2000 ac sa
4 adam 5000 it ch
5 will 4000 ac cb
6 john 6000 it cb
7 bradley 10000 it ch
i have table like this if dep = 'it' update 1000 if dep='ac' update 2000
I tried this query but it fails
update emp set sal=sal+(select case when dep='it' then '1000'
when dep='ac' then '2000'
else '0'
end
from emp);
Try something like this:UPDATE t1 SET t1.sal = t2.sal FROM emp AS t1 INNER JOIN ( SELECT id, CASE WHEN dep='it' THEN sal+1000 WHEN dep='ac' THEN sal+2000 ELSE sal END AS sal FROM emp ) AS t2 ON t1.id = t2.id
update emp set sal=sal+ ( case when dep='it' then 1000 when dep='ac' then 2000 else 0 end )
update emp e1 set e1.sal=e1.sal + (select case when e1.dep='it' then '1000' when e1.dep='ac' then '2000' else '0' end)