2012-07-25 3 views
0

동일한 열을 모두 표시하는 20 개의 열이있는 테이블이 있습니다. 왜 내 회사가 이렇게 설정했는지 모르겠지만 테이블을 변경할 수는 없습니다.SQL - 여러 열을 더 많은 행이있는 하나의 열로 결합하십시오.

그 점을 염두에두고 여기에 내가해야 할 일이 있습니다. 보험 회사 이름이있는 드롭 다운 목록을 채워야합니다. 따라서 전체 테이블에서 고유 한 값을 찾아야합니다.

전체 테이블에서 고유 한 값이 필요하므로 Group By 절을 사용하는 것이 좋습니다. 단일 열에는 가능한 모든 값이 들어 있지 않습니다. 내 생각은 테이블의 모든 열을 결합하는 것이 었습니다. 나는 이것이 두 개의 파이프 (||)를 사용하여 이루어진 것을 보았다. 그러나 그것은 나를 돕지 않는 기둥을 연결합니다.

2 개 (또는 20 개)의 열을 결합하여 함께 추가해야합니다. 나는. 나가 20의 란 및 100의 줄로 시작하면, 나는 2000의 줄을 가진 1 개의 란이있을 필요가있다. 이 방법으로 Group By 절을 사용하여 고유 한 값을 선택할 수 있습니다.

도움이 될 것입니다. 내가 달성하기 위해 노력하고있어의

샘플 :

샘플 원래 테이블 :

--Column1-- 
    -Medicaid-- 
    ----------- 
    Blue Cross- 
    ----------- 
    -Medicare-- 
    -Medicaid-- 
    ----------- 
    Home Health 
    ----------- 
    ----------- 
    ----------- 
    ----------- 
    ----------- 
    --No 485--- 
    ----------- 
    -Medicare-- 

어쩌면 내 논리는 잘못된 것입니다 :

--Ins1-----Ins2---Ins3---Ins4- 
    Medicaid-Medicare------------- 
    ---------Medicaid-----No 485-- 
    Blue Cross-------------------- 
    -------Home Health----Medicare 

표는 내가 구성해야합니다. 이것은 전체 테이블에서 고유 한 정보를 찾을 수있는 유일한 방법입니다.

+3

일부 샘플 데이터를 게시하고 최종 제품으로 반환 할 항목을 게시 할 수 있습니까? 또한 어떤 RDBMS를 사용하고 있습니까? – Taryn

답변

5

SQL Server 인 경우이 변환을 수행하려면 UNPIVOT을 사용해야하는 것 같습니다.

샘플 UNPIVOT (데모와 SQL Fiddle 참조) 다음 UNPIVOT 행에 열에서 데이터를 변환합니다

select ques, answer 
FROM t1 
unpivot 
(
    answer 
    for ques in (col1, col2, col3, col4) 
) u 

.

+0

저는 이것이 SQL Server라고 생각하지 않습니다. 우리는 VBScript를 사용하여 XML 인터페이스에서 SQL에 액세스합니다. 이 기술은 여전히 ​​작동합니까? – eatonphil

+0

나는 Union all 절을 사용하여 작동하도록했습니다. 나중에 참조 할 수 있도록 은 다음에 방법이 INS1가 IN2 노동 조합의 모든 선택 null가 아닌 경우 는'보험 에서 보험으로 INS1을 선택하면 ins2는 등 을 null' .. 또는이 웹 사이트 HTTP를 사용하지 않는 보험 : //weblogs.sqlteam.com/jeffs/archive/2008/04/23/unpivot.aspx – eatonphil

+2

@phileaton 당신은 당신이 독특하다고 생각했지만 당신의 예제는 중복되어 있다고하셨습니다. 중복을 제거하려면 UNION ALL 대신 UNION을 사용하십시오. –

관련 문제