表项(4列,为简化起见,简化)
Record | Item | Price | Zone
数据
1 | 100 | 10.00 | A 2 | 100 | NULL | B 3 | 100 | NULL | C 4 | 200 | 25.00 | A 5 | 200 | NULL | B
尝试NULL使用非NULLs 的相应值更新s Item.因此,所有项目100都将读取10.00并且项目200都将读取25.00.
我觉得这应该是超级简单的,但无法弄清楚自我参考.
谢谢
Cle*_*gic 15
你去吧
UPDATE a
SET a.Price=b.Price
FROM Item AS a
INNER JOIN Item AS b
ON a.item=b.item
WHERE a.Price is NULL AND b.price is NOT NULL
Run Code Online (Sandbox Code Playgroud)
或者,如果有多个非零价格,并且您想要选择最高价格.
UPDATE a
SET a.Price=(SELECT MAX(b.PRICE) FROM ITEM AS b WHERE b.Item=a.Item and b.Price is not null )
FROM Item AS a
WHERE a.Price is NULL
Run Code Online (Sandbox Code Playgroud)