当前位置: 首页 > 面试题库 >

SQL Server更新另一个表中的多个列

柏高丽
2023-03-14
问题内容

我已经阅读了很多有关如何更新多列的文章,但仍然找不到正确的答案。

我有一张桌子,我想从另一张桌子更新这张桌子。

Update table1 
set (a,b,c,d,e,f,g,h,i,j,k)=(t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k)
from 
(
  SELECT ..... with join ... where ....

) t2
    where table1.id=table2.id

如果我只运行select语句(在方括号之间),则脚本返回值,但无法使用update


问题答案:

TSQL不支持行值构造函数。改用这个:

UPDATE table1 
SET a = t2.a,
    b = t2.b,
    (...)
FROM 
(
SELECT ..... with join ... WHERE .... 
) t2
WHERE table1.id = table2.id


 类似资料:
  • 问题内容: 我需要根据从以下两个表中提取的数据创建一个新表: 第一表: 第二张表: 新表应包含一个“ Var”列和一个“Number”列,其中每个变量将包含一行带有cur_number的行,其余各行将包含第二个表的new_number列中的数字,其中。例如,在上面显示的示例中,对于A,将有一行,行数为10(其cur_number),另一行为“ 2”(因为2 <10,但是11>10)。 在我的示例中

  • 问题内容: 我试图用另一个表中找到的值更新一个表中的所有记录。 我尝试了相同基本查询的许多版本,并且始终收到相同的错误消息: 操作必须使用可更新的查询。 关于为什么此查询在Access DB中不起作用的任何想法? 也尝试了此操作,因为我意识到第二张表的每个型号都有多个型号记录-我只需要为每个型号找到第一条记录中的第一条说明。 …虽然仍然出现相同的错误。 问题答案: 您必须使用联接

  • 问题内容: 我有两张桌子。 表1 包含的公司的地理位置在经纬度坐标中以lat / lng坐标进行地理定位 表2 还包含 表1 中未地理参考的相同公司,以及数百个地址已地理参考的其他公司。 我需要做的就是将 Table1* 公司的lat / lng值插入 表2中 的相应条目中。这些插入可以基于的共同点是该列。 *** 我敢肯定,这是一个简单的问题,但是我很少使用SQL。 问题答案: 假设 插入“ t

  • 问题内容: 我正在尝试根据另一个MySQL信息更新一个MySQL表。 我的桌子看起来像: 而表如下所示: 我想更新在与来自基于(存储在字符串字段)。 希望更新后的表如下所示: 我有一个有效的查询,但是非常慢: 这使我的CPU耗尽,最终导致超时,并且仅执行了一部分更新(有数千个要匹配的值)。我知道匹配的速度会很慢,但这是我必须将它们匹配在一起的唯一数据。 有没有更好的方法来更新这样的值?如果可以更快

  • 我已经创建了一个多边形表(多边形),其中包含名称和点(使用多边形值) 我有另一个表(latlon ),它有lat和lot列,包含超过一百万条记录 我必须在“多边形”表中的点的帮助下更新纬度表中的列(区域名称) 以下 select 语句为一条记录提供正确的输出。 有人能帮我在POSTGIS中编写一个UPDATE查询来获取更多的lat,lon值吗?

  • 问题内容: 我有一条语句需要写(用通用名称表示,因为这是为了工作)来更新表“ tUpd”中的列“ updCol”。tUpd还具有一个列“ linkCol”,该列存在于另一个表tOther中。tOther还有另一列“ idCol”。 我的问题是更新tUpd中行的updCol值,该值通过linkCol对应于具有给定idCol值的行。 我认为应该起作用的一种解决方案是: 但是,我担心这种方法会导致性能下