2014-02-25 2 views
-2

데이터베이스에 단일 테이블 열의 데카르트 데카르트 제품을 만들고 싶습니다.데카르트 제품 데이터베이스

나는 각 열에 3 개의 열과 3 개의 값을 가진 하나의 테이블을 가지고 있는데, 테이블의 열 내에서 데카르트 곱의 27 개의 결과 행을 원합니다.

이 결과를 얻는 가장 좋은 방법은 무엇이며 출력을 생성하기 위해 데이터 구조를 사용해야합니까?

답변

1

데카르트 생성은 간단합니다.

select 1 as one,2 as two,3 as three 
into #test 
union all select 4,5,6 
union all select 7,8,9 

select t1.* 
from 
    #test t1, 
    #test t2, 
    #test t3 

drop table #test 

이 자기 test (T2의 경우) 다른 모든 레코드 test (T1의 예)에서 모든 레코드에 참여합니다.

새 테이블을 만들려면 select t1.*select t1.* into myTableName으로 변경하면 테이블이 채워집니다.

편집 : 귀하의 질문에 따라, 나는 내 대답이 당신이 원하는 것을 줄 것이라고 믿습니다. 그러나 pivot 데이터를 원할 수도 있습니다.

+0

도움 주셔서 감사합니다 ....하지만 런타임에 데이터베이스에 테이블을 만들고 테이블에 삽입 할 때 런타임에도 수행됩니다 ... 더 많은 시나리오가 있습니다. 따라서 열 수가 고정되어 있지 않습니다. . 그래서 이것에 대한 해결책이 될 것입니다. –

+0

@ Neeraj_Yadav 그렇다면 왜 테이블을 다르게 만들지 않습니까? 이 끔찍한 DB 디자인을 제거하고 더 많은 것을 유지 보수하십시오. – paqogomez

+0

일부 샘플 입력은 원하는 결과를 게시하십시오. – paqogomez