我最近更新了我的表模式以包含一個新列,它具有一個或多個取決於行的可能值(我可以從另一個表中抽取這些可能的值)。我希望更新我的表格,並用一個或多個新行替換每個當前單行,其中舊列值都與原始行匹配,並且新列值覆蓋每個可能的值一次。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