2012-01-11 2 views

답변

1

이것은 하나의 "해결책"이며, 더 많은 것들이 있습니다.

FirstName, LastName 및 Hometown으로 구성되는 "Person"테이블 하나와 City 및 State와 함께 "CityToState"라는 조회 테이블을 만들 수 있습니다.

해당하는 데이터로 조회 테이블을 채 웁니다 (내가 확신, 상당히 클 것이다) 및 NULL로, 당신에게 정확한 데이터를 제공한다

은 국가의 경우 반환 쿼리

select FirstName, LastName, Hometown, State 
    from Person left join CityToState on Hometown=City; 
를 발행 도시가 조회 테이블에 존재하지 않습니다.

기본적으로 Person에서 모든 데이터를 가져 와서 HomeToown이 City와 동일한 CityToState의 행과 함께 행에 가입시킵니다. "왼쪽"부분은 CityToState에 일치하는 행이 없더라도 왼쪽 테이블 (Person)의 행을 반환해야 함을 의미합니다.

+0

도움을 주셔서 감사합니다 - 아름답게 일했습니다! –

0

당신이 사용하고있는 데이터베이스에 대해 computed column을 조회하십시오 (당신은 질문에 언급하지 않습니다). 다음은 SQL Server의 Computed Columns에 대한 정보입니다.

그러나 나는 다른 디자인을 사용해야한다고 생각합니다. 고향을 기반으로 국가를 검색하는 경우 외래 키로 충분하며 데이터를 복제 할 필요가 없습니다.

+0

질문은 "내 SQL 쿼리에서 필드를 만드는 방법"에 대한 질문보다는 테이블의 영구적 인 질문입니다. 나는 그들이 단지 가입 할 필요가 있다고 생각한다. –

+0

@ Martin Smith, 당신의 추측은 내 것이나 마찬가지입니다. –

관련 문제