0

我有一个看起来像这样的表:

代码动物

123  "Alligator"
1254 "Cardinal"
5675 "Golden Retreiver"

我有另一个看起来像这样的表:

CODE  TYPE
12367 Reptile
12    Bird
56    Dog 

我想根据代码将列类型添加到第一个表中。我不确定如何进行。

4

1 回答 1

1

那么第一项工作是使用alter table 语句添加列。

就像在类似的东西

Alter Table Animals Add AnimalTypeCode int null

然后你需要填充它,这将是一堆更新语句

用类似的东西说

Update Animals 
Set AnimalTypeCode = 12367
Where Code = 123

或者如果说鳄鱼是 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, Elephant, Bird(12)。如果你有类似的东西,你将不得不单独修复它们。

于 2012-05-28T20:48:47.200 回答