2012-04-05 16 views
5

私は非常に理解しやすい問題がありますが、私にとっては実装が簡単ではありません。SQLのテーブルに2つの列を結合

私が持っている時間という名前のテーブルは:

----------------------------------- 
DAY  TIME1  TIME2 
----------------------------------- 
1  08.00  09.40 
1  09.40  10.00 
1  10.00  11.40 
2  08.00  08.50 
2  08.50  10.40 
---------------------------------- 

私は何を取得したいことのようである:

SELECT DISTINCT sub.val FROM (
    SELECT Time1 AS val FROM Time 
    UNION ALL 
    SELECT Time2 AS val FROM Time 
) AS sub 

そしてそれ:

------------------- 
DAY  TIME  
------------------- 
1  08.00  
1  09.40  
1  10.00  
1  11.00  
2  08.00  
2  08.50  
2  10.40  
------------------ 

私はこのコードを試してみましたTimeカラムだけを返します。 「日」列に参加することについて私は考えていません。私は「日」を「DISTINCT sub.val」の後に追加しようとしていますが、エラーが発生しました。どうやってするの?

ありがとうございました。

+0

@Allを:あなたの答えのすべてをありがとうございました。それは、いくつかの異なる方法で問題を解決するのに本当に役立ち、同じ価値をもたらしました。 :) –

答えて

5
select distinct day, time1 from mytab 
union 
select distinct day, time2 from mytab 
+1

お返事ありがとうございました。 :) –

3
SELECT DISTINCT sub.Day, sub.val as Time FROM (
    SELECT Day, Time1 AS val FROM Time 
    UNION ALL 
    SELECT Day, Time2 AS val FROM Time 
) AS sub 
+1

お返事ありがとうございました。 :) –

3

これは役立つかもしれない。この

SELECT DISTINCT * 
FROM (
    SELECT day, time1 FROM Time 
    UNION ALL SELECT day, time2 FROM Time 
) AS x 
ORDER BY x.day 
+0

お返事ありがとうございました。 :) –

2

を試してみてください。

SELECT 
    DAY, 
    TIME1 
FROM 
    YourTable AS T 
UNION 
SELECT 
    DAY, 
    TIME2 
FROM 
    YourTable AS T 
ORDER BY DAY,TIME1 
+0

お返事ありがとうございました。 :) –

+0

問題ありません。喜んで:P – Arion

関連する問題