SQL使用同一表中其他行的数据更新行

时间:2014-05-15 14:45:38

标签: sql sql-server

我有一个大型记录表,其中主键是一个项目代码,它是一个int。

很多记录已经过时了,我想用其他行中的信息替换这些行中的信息,同时保留旧的主键。

所以,如果我有两行:

ITEM_CODE   LANGUAGE    LABEL
12345678    ENG         OLD LABEL
87654321    EN-GB       NEW LABEL

我正在寻找一个SQL语句,它将留下我的下表

ITEM_CODE   LANGUAGE    LABEL
12345678    EN-GB       NEW LABEL
87654321    EN-GB       NEW LABEL

当我查看UPDATE语句时,我正在寻找类似

的内容
UPDATE table
SET  language1 and label1 WITH language2 and label 2 
WHERE item code1 = item code 2

我在SQL Server Management Studio中执行此操作

希望你能提供帮助。 感谢

1 个答案:

答案 0 :(得分:0)

更改您的代码,如下所示:

UPDATE table SET  LANGUAGE = (Select LANGUAGE from table where ITEM_CODE = 87654321) 
                  LABEL    = (Select LABEL from table where ITEM_CODE = 87654321)
WHERE ITEM_CODE = 12345678

它适用于您的示例,您也可以用其他语法和方式重写它......

如果您的目标不同,请进一步解释。

祝你好运