我使用的是 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')
我需要编写一个执行以下操作的更新查询:
获取
B_ItemNumber
对于所有人B_OrderNumbers
其中字符串的 int 部分 < 500000 (XY004005
将包含在004005 < 500000
中,但XY511340
不会)使用此商品编号
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'