仅在非空值的情况下更新

时间:2016-09-27 12:41:50

标签: sql sql-server

我希望从table1更新一个列(a),并从table2中选择,但只有在table2中,现有列(b)不为null时才进行更新。我不想使用where语句(不为null)因为它会影响我的所有代码。

我的代码示例:

update table1 set column(a) = (select column(b) from table2)

我正在尝试这样的事情

update table1 set column(a) = not null(select column(b) from table2)

示例:

update ExpressMarketCheck set Barcode = (select barcode from ExpressMarket), Name=(select name from expressmarket), price=(select price from expressmarket)

3 个答案:

答案 0 :(得分:1)

您可以使用此查询来实现约束。

Update ExpressMarketCheck set Barcode = (select barcode from ExpressMarket where barcode IS NOT NULL)

答案 1 :(得分:1)

mySQL有一个IFNULL函数,所以你可以这样做:

UPDATE your_table_name
SET your_column_name= "data",
scan_created_date = ISNULL( your_column_name, "data" )
WHERE id = X

答案 2 :(得分:1)

我想你想要一个join

update emc
    set Barcode = em.barcode, 
        Name = em.name,
        price= em.price
     from ExpressMarketCheck emc join
          expressmarket em
          on emc.?? = em.??;

我无法从您的问题中看出join应该使用哪些列。 ??是占位符。