使用SQL根据其他列的条件复制特定内容

时间:2015-03-29 18:25:07

标签: sql sql-server group-by

当字段为NULL时,我需要使用SQL或Excel来复制SAME模型和颜色的其他相应图片值的图片列数据。

http://i62.tinypic.com/10zwx7m.jpg

对于这张图片我需要D-2和D-4也说A-2.jpg而不是NULL (它是相同的模型,颜色是红色,所以复制现有的A模型和那里的红色图片)。我需要D-7来复制D-5或D-6的图像值(A-4.jpg或A-5.jpg可以工作)。所以....如果该组没有特定的图片(即模型B和黑色),那么它可以保留为NULL。

我正在尝试使用按功能分组和嵌套选择,但我无处可去。

2 个答案:

答案 0 :(得分:0)

假设您的桌子被称为"产品"你可能会做这样的事情:

UPDATE products p SET picture = (
SELECT picture 
FROM products p2
WHERE p2.model = p.model
AND p2.color = p.model
)
WHERE p.picture IS NULL 

有关更新命令的规则因不同的数据库系统而异。如果上述查询不起作用,请告诉我们您正在使用哪个数据库。

答案 1 :(得分:0)

如果您使用的是MS SQL Server,则可以使用自联接来更新表。

update r set r.picture = l.picture
from Item l
join Item r on l.model = r.model and l.color=r.color
where 
l.picture is not null and 
r.picture is null