在SQL中执行Insert into语句,导致其他列为空
我试图在其他列的数据已经存在的列中使用insert,但是数据不是在其他列的附近填充的,而是在表中的所有数据之后插入数据。 例如:在SQL中执行Insert into语句,导致其他列为空,sql,tsql,sql-server-2008-r2,Sql,Tsql,Sql Server 2008 R2,我试图在其他列的数据已经存在的列中使用insert,但是数据不是在其他列的附近填充的,而是在表中的所有数据之后插入数据。 例如: select * from tab1; ID NAme Last_name 1 King 2 Queen 3 Rook select * from tab2; Id LastName_Name 1 Abc 2 def 3 xyz SQL
select * from tab1;
ID NAme Last_name
1 King
2 Queen
3 Rook
select * from tab2;
Id LastName_Name
1 Abc
2 def
3 xyz
SQL : Insert into tab1 (Last_name)
select tab2.LastName_Name from tab1,tab2, where tab1.Id=tab2.Id
Output:
Id Name Last_Name
1 King NULL
2 Queen NULL
3 Rook NULL
4 NULL Abc
5 NULL def
6 NULL xyz
但我需要以下数据:
Id Name Last_Name
1 King Abc
2 Queen def
3 Rook xyz
Id Name ID2
1 King 1
2 Queen 2
3 Rook 3
有什么办法吗?提前感谢:)
步骤2:
从选项卡1中选择*
ID名称Id2
1金娜
女王2号
3鲁克纳
从tab2中选择*
ID
1
2
3
4
5
6
我希望输出数据如下所示:
Id Name Last_Name
1 King Abc
2 Queen def
3 Rook xyz
Id Name ID2
1 King 1
2 Queen 2
3 Rook 3
tab2中的ID数据应填充在与tab1.ID列值匹配的tab1列(ID2)中,如下所示:
Id Name Last_Name
1 King Abc
2 Queen def
3 Rook xyz
Id Name ID2
1 King 1
2 Queen 2
3 Rook 3
您能提供任何查询吗?所以您想用tab2中相应的姓氏更新tab1中的行 在这种情况下,请使用UPDATE语句而不是INSERT语句:
UPDATE tab1
SET tab1.Last_name = tab2.LastName_Name
FROM tab1
JOIN tab2 ON tab1.Id = tab2.Id
您不需要
插入
您需要更新
语句:
UPDATE tab1 SET tab1.Last_name = tab2.LastName_Name
FROM tab1 INNER JOIN tab2 ON tab1.Id = tab2.Id
非常感谢您的回答,如果要执行以下操作,我应该查询什么:从表1中选择*;ID名称选项卡2\u ID 1国王2王后3车Exa:从选项卡2中选择*;Id 1 2 3输出:Id名称选项卡2_Id 1国王1 2王后2 3车3@AdaTheDev非常感谢您的回答,如果要执行以下操作,我应该查询什么:从表1中选择*;ID名称选项卡2\u ID 1国王2王后3车从选项卡2中选择*;Id 1 2 3输出:Id NAme TAB2_Id 1 King 1 2 Queen 2 3 Rook 3非常感谢您的回答帮助了我,如果要执行以下操作,我应该查询什么:从tab1中选择*;ID名称选项卡2\u ID 1国王2王后3车Exa:从选项卡2中选择*;Id 1 2 3输出:Id名称选项卡2_Id 1国王1 2王后2 3车3当进一步的问题添加为注释时,很难阅读。格式化确实有助于我们帮助您,因为这是一个不同的问题,所以最好关闭此问题(接受为您解决初始问题的答案),然后打开一个新问题。我想将TAB2.ID插入TAB1.TAB2_ID(列)从TAB2.ID开始,输出应该是:ID NAME TAB2_ID 1 King 1 2 Queen 2 3 Rook 3请帮助当我使用更新语句时,它给出的行数太多了,请使用下一步更新您的原始问题以使其更清楚@@AdaTheDev Hey查询已运行更新系统,我需要保留ltrim(ID)使我的结果生效,因为我的表中的Id列以“空格”开头。。非常感谢你