关于sql:如何使用信息从表B更新表A中的col

How do I update a col in table A, using info From table B

本问题已经有最佳答案,请猛点这里访问。

我正在使用Microsoft SQL Server 2005

我有两张桌子,比如TableATableB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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_OrderNumbersB_ItemNumber,其中字符串的int部分<500000(由于004005 < 500000将包括XY004005,但XY511340将不包括)

  • 将此项目编号用于UPDATE A_IsDeleted WHERE A_ItemNumber = B_ItemNumber

  • 我基本上想把A_IsDeleted改为对所有A_ItemNumber = B_ItemNumber where B_OrderNumber < XY500000

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


    在细节上相当稀疏,但像这样的事情应该能让你接近。

    1
    2
    3
    4
    5
    6
    UPDATE A
    SET IsDeleted = 1
    FROM TableA A
    JOIN TableB B ON b.ItemNumber = A.ItemNumber
    WHERE b.OrderNumber > 'XY004005'
    AND b.OrderNumber < 'XY500000'