SQL Server에서 15 개의 구매 레코드 열이있는 비정규 화 테이블을 상속했습니다.
| 색인 | TransNo | 펀드 | 비용 | 도시 | 우편 번호 | 은행 | Risk_YesNo | ......
| 1 | 1 | 녹색 | 34 | NYC | 우편 번호 | Sunt |
| 2 | 12 | 파티 | 345.23 | NYC | 우편 번호 | BOA_BS |
| 3 | 32 | 에듀 | 43 | 보스턴 | 우편 번호 | BOA_BS |
| 4 | 53 | 책 | 56 | Atl | 우편 번호 | 씨티 |
| 5 | 422 | Groc | 12315 | Atl | 우편 번호 | 핑크 |
3 개의 고유 한 열 조합 만 추출하고 index 및 trans No와 같은 다른 열을 무시하고 동일한 테이블에 삽입하면됩니다 (나머지 열은 null로 사용).
다음 단계를 계획 할 때 2 정규화를 원합니다. 각 고유 값을 자체 테이블에 삽입해야합니다.
| 펀드 | 도시 | 은행 |
| 그린 | NYC | Sunt | // 녹색과 도시 및 은행의 모든 뚜렷한 조합
| 그린 | NYC | BOA_BS |
| 에듀 | NYC | Sunt | // Edu와 도시 및 은행의 모든 고유 한 조합
| 에듀 | NYC | BOA_BS |
아래와 같이 고유 한 레코드 만 가져 오려면 insert into .. select from
with 구문을 사용하십시오.distinct
insert into mytable
select distinct Fund, City, Bank, null,null,null,....,null
from mytable
편집하다:
아래 귀하의 의견에 따라
1) Risk_YesNo = Y 열의 기본값을 어떻게 채울 수 있습니까?
SELECT
쿼리에 포함하기 만하면됩니다. [아래 예 참조]
2) [비용] 열에 대한 임의 비용 값을 어떻게 채울 수 있습니까?
SELECT
쿼리 의 일부 에도이를 포함 할 수 있습니다 . SQL Server 2008 이상을 사용하는 경우 RAND () 함수를 사용 하여 동일한 결과를 얻을 수 있습니다 .
RAND()
함수는 float
유형 결과를 반환합니다 . 따라서 Cost
열이 유형 Integer
인 경우 CAST(RAND() as int)
[아래 예 참조] 라고 명시 적으로 캐스팅해야 합니다.
이를 통해 귀하의 쿼리는
insert into mytable(Fund, City, Bank, Risk_YesNo, Cost, ....)
select distinct Fund, City, Bank, 'Y', RAND(), null,null,null,....,null
from mytable
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다