5

理解するのは非常に簡単な問題がありますが、実装するのはそれほど簡単ではありません。

Timeという名前のテーブルがあります:

-----------------------------------
 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
 ----------------------------------

私が取得したいのは次のようなものです:

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

私はこのコードを試しました:

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

そして、それは Time 列を返すだけです。「日」列に参加する考えはありません。「DISTINCT sub.val」の後に「Day」を追加しようとしたところ、エラーが発生しました。どうやってするの?

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

4

4 に答える 4

5
select distinct day, time1 from mytab
union
select distinct day, time2 from mytab
于 2012-04-05T13:40:41.443 に答える
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
于 2012-04-05T13:40:36.400 に答える
3

これを試して

SELECT DISTINCT *
FROM (
    SELECT day, time1 FROM Time
    UNION ALL SELECT day, time2 FROM Time
) AS x
ORDER BY x.day
于 2012-04-05T13:42:43.450 に答える
2

これは役立つかもしれません:

SELECT
    DAY,
    TIME1
FROM
    YourTable AS T
UNION
SELECT
    DAY,
    TIME2
FROM
    YourTable AS T
ORDER BY DAY,TIME1
于 2012-04-05T13:44:07.787 に答える