2012-05-28 1 views
0

일치하지 않는 테이블 병합 :SQL 코드 내가이 보이는 테이블이 정확히

CODE 동물

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

을 그리고는 다음과 같습니다 다른 테이블이 있습니다

CODE TYPE 
12367 Reptile 
12 Bird 
56 Dog 

코드를 기반으로 첫 번째 테이블에 열 형식을 추가하고 싶습니다. 진행 방법을 모르겠습니다.

+0

왜 그렇게하고 싶습니까? 관계형 데이터베이스가 있으므로 두 번째 테이블의 "코드"를 첫 번째 테이블에 넣기 만하면됩니다. – Nick

+0

수동으로 두려워합니다. 당신이 갔을 때 당신은 동물의 유형을 동물 테이블에 추가해야합니다. – Ben

+0

첫 번째 두 줄은 거꾸로 보입니다. 첫번째 줄의 코드 번호가 반전 된 경우 LIKE 문을 기반으로 추가 할 수 있습니다 (T1.CODE LIKE (T2.CODE + '%')). 12367은 123과 같을 것입니다. – Bit

답변

1

첫 번째 작업은 alter table 문과 함께 열을 추가하는 것입니다.

Update Animals 
Set AnimalTypeCode = 12367 
Where Code = 123 

같은 또는 말 악어 경우 뭔가 업데이트 문 무리

말과 함께있을 것입니다 그리고 당신이 그것을 poulate 필요

Alter Table Animals Add AnimalTypeCode int null 

같은에서와 마찬가지로

, 는 679

Update Animals 
Set AnimalTypeCode = 12367 
Where Code in (123,679) 

또는 당신이 선호하는 경우 조금 더

Update Animals 
Set AnimalTypeCode = 12367 
Where Animal in ('Alligator','Crocodile') 

읽을 모두가 하나있어 때까지 아마 당신이 외부 키를 추가 할 수 있습니다 thenn, 필요에 따라 새로운 유형을 추가, 멀리 두들겨하십시오.

당신이 어딘가에 추가하는 동물의 종류

편집 해에 동물을 연결하는 테이블을 멀리 은닉하지 않는 한이 작업을 수행하는 쉬운 방법. 주어진 AnimalCode = AnimalTypeCode * 100 +? 다음

Update Animals 
Set AnimalTypeCode = Cast(AnimalCode/100 as Int) 

당신에게 animaltypecode 기존 동물의 종류를 가리키는되지 않은 경우 모든 사람을 줄 것이다 작업

Select * 
From Animals 
outer join AnimalTypes On Animals.AnimalTypeCode = AnimalTypes.Code 
Where AnimalTypes.Code is null 

을 할 수 있습니다.

주의해야 할 것은 1269, Elephant, Bird (12)입니다. 당신이 그런 것을 가지고 있다면 그것들을 개별적으로 고쳐야 할 것입니다.

+0

코드는 유사합니다. 첫 번째 테이블에는 1000 개의 행이 있고 두 번째 테이블에는 100 개의 행이 있습니다. –

+0

아, 그걸 본 적이 없어요. 기다려. –