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

使用SQL根据其他列的条件复制特定内容,sql,sql-server,group-by,Sql,Sql Server,Group By,当字段为空时,我需要使用SQL或Excel复制相同型号和颜色的其他对应图片值的图片列数据 对于显示的这张图片,我需要D-2和D-4也表示A-2.jpg,而不是NULL (与A模型相同,颜色为红色,因此复制现有的A模型和红色图片)。我需要D-7来复制D-5或D-6的图片值(A-4.jpg或A-5.jpg可以)。等等。。。。如果没有该组的特定图片(即B型和黑色),则可以将其保留为空 我正在尝试使用group by函数和嵌套选择,但我在这方面一无所获。假设您的表被称为“产品”,您可能可以执行以下操作

当字段为空时,我需要使用SQL或Excel复制相同型号和颜色的其他对应图片值的图片列数据

对于显示的这张图片,我需要D-2和D-4也表示A-2.jpg,而不是NULL (与A模型相同,颜色为红色,因此复制现有的A模型和红色图片)。我需要D-7来复制D-5或D-6的图片值(A-4.jpg或A-5.jpg可以)。等等。。。。如果没有该组的特定图片(即B型和黑色),则可以将其保留为空


我正在尝试使用group by函数和嵌套选择,但我在这方面一无所获。

假设您的表被称为“产品”,您可能可以执行以下操作:

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 

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

如果您使用的是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

让我们看看您编写的一些SQL。SQL只是结构化查询语言—一种被许多数据库系统使用的语言,但不是数据库产品。。。很多东西都是特定于供应商的-因此我们确实需要知道您使用的是什么数据库系统(以及哪个版本)(请相应地更新标记)…是的,我使用的是MS SQl Server。这工作做得很好!谢谢你,很高兴这有帮助。那你能把它标为答案吗?