我有一个看起来像这样的表:
CODE ANIMAL
123 "Alligator"
1254 "Cardinal"
5675 "Golden Retreiver"
我还有一张看起来像这样的表:
CODE TYPE
12367 Reptile
12 Bird
56 Dog
我想根据代码将列Type添加到第一个表中。我不知道该怎么办。
答案 0 :(得分:1)
第一项工作是使用alter table语句添加列。
像
那样Alter Table Animals Add AnimalTypeCode int null
然后你需要把它包起来,那将是一堆更新语句
用
之类的东西说Update Animals
Set AnimalTypeCode = 12367
Where Code = 123
或者说Crocodile是679
Update Animals
Set AnimalTypeCode = 12367
Where Code in (123,679)
或者如果您更喜欢它更具可读性
Update Animals
Set AnimalTypeCode = 12367
Where Animal in ('Alligator','Crocodile')
继续抨击,直到他们都有一个,也许根据需要添加一些新类型,然后你可以添加一个外键。
没有简单的方法可以做到这一点,除非你把一张桌子藏在动物类型的某个地方
编辑添加。鉴于AnimalCode = AnimalTypeCode * 100 +?那么
Update Animals
Set AnimalTypeCode = Cast(AnimalCode / 100 as Int)
可以做这个工作
Select *
From Animals
outer join AnimalTypes On Animals.AnimalTypeCode = AnimalTypes.Code
Where AnimalTypes.Code is null
将为您提供动物类别未指向现有动物类型的所有动物。
你需要警惕的是1269,大象,鸟(12)。如果你有类似的东西,你必须单独修复它们。