如何从一行SQL创建两行

时间:2015-11-19 18:13:00

标签: sql sql-server

我是否使用select查询从一行创建了两行?

这是一个例子

  create table timecards 
  (employeeid nvarchar(10) not null,
  regulartime int null,
  overtime int null)

  insert into timecards
  values ('A', 8, 1)

我希望结果是

 A,8
 A,1

2 个答案:

答案 0 :(得分:2)

你可以unpivot表。在这种情况下,任何列中的null值都将被消除。

SQL Fiddle

select employeeid, tm
from 
(select employeeid,regulartime,overtime from timecard) t
UNPIVOT
(tm for id in (regulartime,overtime)
) as x

答案 1 :(得分:1)

很多方式......怎么样

select employeeid, regulartime as somekindatime
from timecards
union all
select employeeid, overtime
from timecards

ALL关键字只是告诉SQL我们不想排序和消除重复项。除非你真的想要消除重复的行,否则可以节省时间。