Vba*_*now 0 sql-server sql-update
我有一个名为acc1152的表,字段为accno.取决于该字段的值,我需要用新值替换它.这些是我需要更新的值
old value new value
7007 4007
7008 4008
4008 7
7009 4009
7011 4011
4011 ' '
7010 4010
4010 1
7016 4016
4016 1
4506 4006
4512 4012
Run Code Online (Sandbox Code Playgroud)
如果记录在其accno字段中具有上面的旧值,则该accno需要用新值替换
如何编写一个可以完成此任务的查询?
您可以case在update语句中使用语句,如下所示:
update acc1152
set [columnName] =
case [columnName]
when '7007' then '4007'
when '7008' then '4008'
-- etc
when '4512' then '4012'
else
[columnName] end
Run Code Online (Sandbox Code Playgroud)
或者更好的方法(IMO)将使用临时/变量表来跟踪您的旧/新映射
declare @someTable table (oldValue varchar(50), newValue varchar(50))
insert into @someTable (oldValue, newValue)
select '7007','4007'
union all select '7008','4008'
-- etc
union all select '4512','4012'
update acc1152
set [columnName] = st.newValue
from acc1152 a
inner join @someTable st on a.[columnName] = st.oldValue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |