2013-03-19 2 views
0
c1 c2 

10 30 
20 40 

C1, C2는 두 개의 열이고 다음과 같이 SQL 쿼리를 사용하여 출력합니다.두 개의 열 c1, c2를 테이블의 c3으로 결합합니다.

C3 

10 
20 
30 
40 
+0

스택 오버플로에 오신 것을 환영합니다! 스택 오버플로에 오신 것을 환영합니다! 해당 태그 (Oracle, SQL Server, MySQL 등)를 추가하여 대상으로 삼고있는 RDBMS를 지정하십시오. 보편적으로 지원되지 않는 언어 나 제품 기능을 이용하는 대답이있을 수 있습니다. 또한 특정 RDBMS로 태그를 달면 질문에 더 적합한 답변을 얻을 수 있습니다. – Taryn

답변

2
사용 UNION (암시 적 구분)

또는 UNION ALL : 당신이 UNION을 사용할 수 있습니다

SELECT c1 AS c3 FROM tablename 
UNION ALL 
SELECT c2  FROM tablename 
2

, 쿼리의 결과는 고유 한 값입니다 ALL 키워드없이. 중복을 유지하려면 UNION ALL을 사용하십시오.

SELECT C1 as C3 FROM TABLENAME 
UNION 
SELECT C2 as C3 FROM TABLENAME 
2

당신은 결과를 얻기 위해 UNION ALL 쿼리를 사용하는 것이 좋습니다 :

select c1 as c3 
from yourtable 
union all 
select c2 as c3 
from yourtable 

SQL Fiddle with Demo

보기이 유형의 쿼리 것 여러 행에 여러 열에서 UNPIVOT 데이터 .

사용중인 데이터베이스 제품에 따라 일부 데이터 변환을 수행하는 UNPIVOT 기능이 있습니다. 당신은 SQL Server 또는 오라클을 사용하는 경우 예를 들어, 당신은 사용할 수 있습니다

select c3 
from yourtable 
unpivot 
(
    c3 for col in (c1, c2) 
) u 
order by c3 

SQL Fiddle with Demo

1

를 참조하면 무시할 수없는 경우이 테이블

SELECT 1 AS ordering, c1 AS c3 
FROM mytable 
UNION 
SELECT 2 AS ordering, c2 AS c3 
FROM mytable 
ORDER BY ordering, c3 

에 의해 순서를 유지합니다 순서 열을 하위 쿼리로 바꿀 수 있습니다.

SELECT c3 
FROM (
    SELECT 1 AS ordering, c1 AS c3 
    FROM mytable 
    UNION 
    SELECT 2 AS ordering, c2 AS c3 
    FROM mytable) a 
ORDER BY ordering, c3 
관련 문제