所以我有这个数据结构
ID DATE1 STATUS1 DATE2 STATUS2
1 1/1/2012 1 1/1/2012 3
1 3/1/2012 1 1/2/2012 3
2 2/1/2012 1 3/4/2012 3
3 4/1/2012 1 NULL 3
4 2/1/2012 1 6/2/2012 3
我怎么会......
ID DATE STATUS
1 1/1/2012 1
1 1/1/2012 3
1 3/1/2012 1
1 1/2/2012 3
2 2/1/2012 1
2 3/4/2012 3
3 4/1/2012 1
3 NULL 3
4 2/1/2012 1
4 6/2/2012 3
我最初的猜测可能是使用大量联合的非活动?
答案 0 :(得分:1)
你可以使用union:
select id, date1 mydate, status1 status
from mytable
union all
select id, date2 mydate, status2 status
from mytable
如果您想删除欺骗,只需将union all
替换为union
注意:我已将结果日期列命名为mydate
,因为在您使用的dbms中,date可能是保留关键字..
答案 1 :(得分:1)
此处不需要UNPIVOT。简单的旧UNION ALL就足够了。
SELECT ID, DATE1 DATE, STATUS1 STATUS
FROM TBL
UNION ALL
SELECT ID, DATE2 DATE, STATUS2 STATUS
FROM TBL
ORDER BY ID, DATE, STATUS
答案 2 :(得分:1)
我认为在你的情况下,简单的UNION会有所帮助:
select ID, DATE1, STATUS1 FROM your_table
union
select ID, DATE2, STATUS2 FROM your_table