2012-04-05 19 views
5

Tengo un problema que es bastante simple de entender, pero para mí no es tan simple de implementar.Unir dos columnas en una tabla en SQL

tengo una tabla llamada Tiempo:

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

Lo que quiero conseguir es como:

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

He probado este código:

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

Y solo devuelve la columna Hora. No tengo idea de unirme a la columna "Día". Mientras intento agregar el "Día" después del "SUB.valor DISTINCT", aparece el error. ¿Cómo hacerlo?

Muchas gracias.

+0

@All: Gracias por toda su respuesta. Realmente me ayudó mucho a resolver el problema de diferentes maneras y obtuve el mismo valor. :) –

Respuesta

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

Muchas gracias por la respuesta. :) –

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

Muchas gracias por la respuesta. :) –

3

probar esto

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

Muchas gracias por la respuesta. :) –

2

Esto podría ayudar:

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

Muchas gracias por la respuesta. :) –

+0

No hay problema. Me alegra ayudar: P – Arion

Cuestiones relacionadas