Skip to main content
 首页 » 编程设计

sql中如何使用表 B 中的信息更新表 A 中的列

2025年01月19日78java哥

我使用的是 Microsoft SQL Server 2005

我有两个表,比如说 TableA ,和TableB

CREATE TABLE TableA ( 
A_ItemNumber (int) 
A_IsDeleted  (bit) 
) 
 
CREATE TABLE TableB ( 
B_ItemNumber (int) 
B_OrderNumber (varchar) 
) 
 
INSERT INTO TableB VALUES  
(1, 'XY004005'), 
(2, 'XY005125'), 
(3, 'XY499999'), 
(4, 'XY511340') 

我需要编写一个执行以下操作的更新查询:

  1. 获取B_ItemNumber对于所有人B_OrderNumbers其中字符串的 int 部分 < 500000 ( XY004005 将包含在 004005 < 500000 中,但 XY511340 不会)

  2. 使用此商品编号 UPDATE A_IsDeleted WHERE A_ItemNumber = B_ItemNumber

我基本上想改变A_IsDeleted对所有人来说都是 TRUE A_ItemNumber = B_ItemNumber where B_OrderNumber < XY500000

我认为这可能是一个简单的加入/更新,但看起来不允许这样做。

请您参考如下方法:

细节非常稀疏,但类似这样的东西应该能让你接近。

Update A 
set IsDeleted = 1 
from TableA A 
join TableB B on b.ItemNumber = A.ItemNumber 
where b.OrderNumber > 'XY004005' 
and b.OrderNumber < 'XY500000'