【问题标题】:SQL Updating Null Table ValuesSQL 更新空表值
【发布时间】:2011-10-13 17:03:49
【问题描述】:

我正在处理两张表,一张表是 part_order 的样子

ONum    PNum    NumOrdered  QuotPrice
2236    BZ66    1   
2236    AZ52    10          29.90
2237    CA14    3   
2240    CB03    1   

表二是一部分,看起来像

PNum    Description OnHand  Warehouse   UnitPrice
AZ52    Skates          20  2           36.95
BZ66    Washer          5   1           465.50
CA14    Skillet         13  1           28.99
CB03    Bike            44  3           195.50

我正在尝试使用单价值更新我的 quotprice 列,如果它为空。这意味着 29.90 应该保留,但其他应该更新。

我输入:

 update part_order
    set quotprice = (select part.unitprice
    from part
    where part.pnum = part_order.pnum
    and quotprice is null);

除了切换值之外,它还可以工作。我的 29.90 变为 null,其他 3 个值被更新。如果我再次键入它,其他 3 个值将返回为 null,并且第二个值填充为 36.95。我想知道为什么它会更改值而不是只检查空值。

【问题讨论】:

    标签: sql null


    【解决方案1】:
    UPDATE po
    SET po.QuotPrice = p.UnitPrice
    FROM part_order AS po
    INNER JOIN part AS p ON po.pnum = p.pnum
    WHERE po.QuotPrice IS NULL
    

    【讨论】:

      【解决方案2】:
       update part_order
         set quotprice = (select part.unitprice
                          from part
                          where part.pnum = part_order.pnum)
         WHERE quotprice IS NULL;
      

      【讨论】:

      • 是的,它运行良好 :) 我讨厌如此简单的事情如何让代码完全崩溃,哈哈。非常感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      相关资源
      最近更新 更多