0
c1  c2

10  30
20  40

C1、C2は2つの列であり、SQLクエリを使用して以下の出力が必要です。

C3

10
20
30
40
4

4 に答える 4

2

使用UNION(暗黙的に区別)またはUNION ALL

SELECT c1 AS c3 FROM tablename
UNION ALL
SELECT c2       FROM tablename
于 2013-03-19T14:26:08.907 に答える
2

UNIONキーワードなしALLで、クエリの結果は一意の値のみを使用できます。複製を保持する場合は、を使用しますUNION ALL

SELECT C1 as C3 FROM TABLENAME
UNION
SELECT C2 as C3 FROM TABLENAME
于 2013-03-19T14:26:28.623 に答える
2

UNION ALLクエリを使用して結果を取得する必要があります。

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

SQL FiddlewithDemoを参照してください

このタイプのクエリは、複数の列から複数の行にデータのピボットを解除します。

使用しているデータベース製品によってUNPIVOTは、データ変換を行う機能を備えているものもあります。たとえば、SQL ServerまたはOracleのいずれかを使用している場合は、次を使用できます。

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

SQL FiddlewithDemoを参照してください

于 2013-03-19T14:26:35.080 に答える
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
于 2013-03-19T14:27:07.937 に答える