动态更新SQL表的快速方法

时间:2016-01-27 15:43:51

标签: sql tsql stored-procedures

目前,我正在从进程中获取导入数据,并使用特定数据对临时表执行MERGE,以便进行一些计算并将数据放入其中的表中的正确位置。我遇到的问题是其中一列是状态列,其中数据以非常差的方式提供给我们。 data以几种不同的格式填充列,例如texas,tx,Mt ..

合并中是否有办法取出"。"在缩写的末尾或动态更改拼写为其缩写的状态?如果在临时表中设置数据后不在合并中,是否有办法运行类似快速更新语句的东西,而不必为每个状态写出50次?我仍然是相对较新的SQL,我能想到的唯一一个快速解决这个问题的答案就是让一堆更新语句按顺序运行,但写出50个更新语句似乎已经过时了,我想它已经有了做一个更好的方法来做这个,而不是一次一行地循环大约40,000个记录左右。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

如果我理解正确,

UPDATE YourTable set StateCol = replace(StateCol,'.','')

试试这个,用空字符串替换点。

答案 1 :(得分:0)

考虑使用merge语句。当您必须更新大量数据时,这非常有用:

MERGE Yourtable AS target
USING ( select stateName,StateAbr from TableAbrv) AS source 
ON (target.stateName= source.stateName)
WHEN MATCHED then update 
set  target.stateName = source.StateAbr