Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用另一个表中提供的范围进行更新_Sql_Sql Server_Tsql_Sql Server 2000 - Fatal编程技术网

Sql 使用另一个表中提供的范围进行更新

Sql 使用另一个表中提供的范围进行更新,sql,sql-server,tsql,sql-server-2000,Sql,Sql Server,Tsql,Sql Server 2000,我有两张桌子 **T1** object Value Calculated_Name AA 10 BB 100 CC 150 **T2** R1 R2 Name 1 15 Z 16 130 w 我想用这样的名字更新你的名字 **T1** object Value Calculated_Name AA 10 Z BB

我有两张桌子

**T1**      

object  Value   Calculated_Name 

AA       10 
BB       100    
CC       150    

**T2**  

R1  R2     Name

1   15      Z
16  130     w
我想用这样的名字更新你的名字

**T1**      

object  Value   Calculated_Name 

AA       10        Z
BB       100       W
CC       150      Null
我怎么能做到?
PS:我必须在SQL2000或更高版本上运行命令

您似乎有更新关系,就像值在第二个表中指定的范围之间一样。范围看起来也包含数据

update t
set 
Calculated_Name =Name
from
t1 t join
t2 p on t.value between r1 and r2

这两个表之间的关系是什么?没有任何明显的证据表明他们之间有关联。如果没有关系,你会看到T2的直接更新<代码>更新T2集合计算\u Name='Z'其中object='AA'…没有关系,T2是一个参考表这是家庭作业吗?您声明
我必须在SQL2000或更高版本上运行该命令。我希望如此,我希望是2008R2或更高,因为它刚刚宣布生命即将结束。这两个表之间有什么关系?如果它们具有已定义的关系,则应该能够从简单联接进行更新。在SQL2005+中,如果需要表1中更复杂的处理,可以使用CTE进行连接。如果没有关系,则无法知道t2中的哪个名称应该放在t1中。这是行不通的。还要注意,这将要求所有范围都不重叠。@Shawn我从数据中得出的假设。好的假设。不好的桌子设计。但很多时候,我们都是用我们得到的东西来工作-/@MohammadVakili好的,那么你确实有关系。下次你在问题中要求更清楚地说明这一点会有帮助,这样回答的人就可以更容易地提供帮助。@MohammadVakili除了接受这个答案外,请更新问题,以澄清这些表格之间的关系,这样就不需要假设了。