我最近更新了我的表模式以包含一个新列,它具有一个或多个取决于行的可能值(我可以从另一个表中抽取这些可能的值)。我希望更新我的表格,并用一个或多个新行替换每个当前单行,其中旧列值都与原始行匹配,并且新列值覆盖每个可能的值一次。SQL多重插入,基于现有行的行数据
举个例子,假设我有一个表叫Animal
,与列AnimalType
,Size
,Habitat
和Weight
。我添加了一个名为Color
的新栏 - 有些动物只有一种颜色,有些可以有几种可能的颜色之一。假设我有Bird
一排,看起来像这样:
{ AnimalType = Bird, Size = Small, Habitat = Woods, Weight = under 10 pounds, Color = NULL }
现在假设,根据我的其他表(称之为AnimalColors
),Birds
可以有三种颜色 - 红色,蓝色和棕色。
我希望与看起来像以下三个新行来替代单行:
{AnimalType = Bird, Size = Small, Habitat = Woods, Weight = under 10 pounds, Color = Red}
{AnimalType = Bird, Size = Small, Habitat = Woods, Weight = under 10 pounds, Color = Blue}
{AnimalType = Bird, Size = Small, Habitat = Woods, Weight = under 10 pounds, Color = Brown}
我有我Animals
表多行,并希望他们每个人的执行此操作。
有没有简单的方法来做到这一点?
谢谢!
是的,我更喜欢这样做 - 我对SQL还比较陌生,我想确保我不会丢失任何现有的数据。 编辑:张贴此之前,您的查询添加到您的文章。谢谢! – thomas
有没有办法避免为每只动物手动输入可能的颜色?如“对于动物表中的每个动物,选择其所有可能的颜色,然后执行这些插入。”我有大约200行,我需要做这个操作。 – thomas
'WITH AnimalColors'部分只是一个展示概念的地方。我假设你已经创建并填充了数据表。这是不正确的?如果你正在寻找最小的改变,只需用'SELECT AnimalType,Color FROM AnimalColors'替换'SELECT'bird','red''部分的内容' – billinkc