我正在使用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
的{{1}},其中字符串的int部分< 500000
(B_OrderNumbers
后将包含XY004005
,但004005 < 500000
不会包含
将此项目编号用于XY511340
我基本上想要将所有UPDATE A_IsDeleted WHERE A_ItemNumber = B_ItemNumber
A_IsDeleted
更改为TRUE
我认为这可能是一个简单的连接/更新,但它看起来不像是允许的。
答案 0 :(得分:2)
细节相当稀疏,但是这样的事情会让你接近。
Update A
set IsDeleted = 1
from TableA A
join TableB B on b.ItemNumber = A.ItemNumber
where b.OrderNumber > 'XY004005'
and b.OrderNumber < 'XY500000'