sql将列中的数据从一行复制到所有其他行

时间:2015-06-03 04:49:14

标签: sql sql-server sql-server-2008

我有一个带有列的SQL表,我需要将数据从一个特定行复制到所有其他行。怎么办呢?

ie:update TABLE set COLUMN = ALL ROWS = ROW1 WHERE COLUMN2 = UNIQUE IDENTIFIER。我希望这是有道理的。

表USER的数据示例:

CODE     PASS        
Joe      Degree1
Sue      Degree2
Pat      Degree3

基本上,我想从JOE中获取PASS列中的数据并将其复制到所有其他用户(SUE和PAT),所以当完成后,PASS应该等于" Degree1"对于所有三个用户。

3 个答案:

答案 0 :(得分:0)

DECLARE @UNIQUEIDENTIFIER INT = 1 --For examnple type of UniqueColumn is INT
UPDATE TableName SET 
ColumnToUpdate = (SELECT ColumnToUpdate WHERE UniqueColumn = @UNIQUEIDENTIFIER)
WHERE UniqueColumn <> @UNIQUEIDENTIFIER

答案 1 :(得分:0)

DECLARE @updatevalue <yourcolumndatatype>
SELECT @updatevalue = updatecolumn
FROM yourtable
WHERE uniquecolumn = uniqueidentifier

UPDATE yourtable
SET updatecolumn = @updatevalue
WHERE uniquecolumn <> uniqueidentifier 

答案 2 :(得分:0)

<强> TABLE_1

key  specData

 1       a

 2    null

 3    null

 4    null

<强>查询

UPDATE Table_1 t
SET t.specData= (SELECT specData FROM Table_1 WHERE key = 1)
WHERE key <> 1;

希望对你有所帮助!