首先我对SQL比较陌生,所以尽管我相信在这个线程中提出了一个类似的问题(SQL Query - Copy Values in Same Table),但我实际上不能很好地理解这些信息。为此我表示歉意。如何将同一个表中的多个值复制到SQL中同一表中的其他值?
现在,我有一个表,看起来是这样的:
company id | parameter name | parameter title
P | Parameter One | First Parameter
P | Parameter Two | Second Parameter
P | Parameter Three| Third Parameter
W | Parameter One | NULL
W | Parameter Two | NULL
除了我的桌子显然有相当多的行。我已经填写了公司ID为'P'的所有参数标题,并且希望避免手动为公司标识为'W'的人员做相同的标题。我的问题是,我可以使用什么SQL语句(这是在Microsoft SQL Server 2008中)将公司标识为'P'的列“参数标题”中的值复制到公司标识为' W'和两个参数名称匹配(W的参数比P少)?
使用以前链接的线程我能想出以下,但它吐出了一个错误,我知道这是不正确完成:
UPDATE COMP_PARAMETER_COPY
SET PARAM_TITLE=(SELECT PARAM_TITLE FROM COMP_PARAMETER_COPY P
WHERE P.COMP_ID = 'P' AND P.PARAM_TITLE=PARAM_TITLE)
WHERE COMP_ID='W'
(我用的副本打转转该表而不是实际的表)
我得到的错误是“Msg 512,Level 16,State 1,Line 1 子查询返回的值超过1,当子查询跟随=,!=, <,< =,>,> =或当子查询用作表达式时 st呕吐已终止。“
谢谢您的帮助和建议, -Asaf
可能重复的[SQL查询 - 在同一表中复制值](http://stackoverflow.com/questions/1400245/sql-query-copy-values-in-same-table) –