select emp_id Emp ID,start_time timing,last_time timing
from data
where (emp_id=5500 and date_id='3/18/2014')
实际输出是,
Emp ID timing timing
5500 03/18/2014 18:30:08 03/18/2014 19:23:09
我需要以下输出
Emp ID timing
5500 03/18/2014 18:30:08
5500 03/18/2014 19:23:09
如何获得此输出?请帮助我,我不知道如何获得这些数据。谢谢你提前!
答案 0 :(得分:3)
您只能union
两个选择:
select emp_id Emp ID, start_time timing
from data
where (emp_id=5500 and date_id='3/18/2014')
union all
select emp_id Emp ID, last_time timing
from data
where (emp_id=5500 and date_id='3/18/2014')
答案 1 :(得分:0)
另一种方法是使用unpivot
。以下通常具有相同的性能:
select emp_id as "Emp ID",
(case when n.n = 1 then start_time
else last_time
end) as timing
from data cross join
(select 1 as n union all select 2) n
where emp_id = 5500 and date_id = '2014-03-18';
答案 2 :(得分:0)
如果你有很多行,那么联盟全部或交叉加入需要时间.. 或者,您可以选择两个不同的查询,如
从数据中选择emp_id Emp ID,start_time计时(emp_id = 5500 和date_id ='3 / 18/2014')
从数据中选择emp_id Emp ID,last_time计时(emp_id = 5500 和date_id ='3 / 18/2014')
从使用通用列表的代码后面你可以合并两个列表对象,如
列出a = new List();列表b =新 列表();
a.AddRange(B);
答案 3 :(得分:0)
尝试删除where子句。对于多行,它将起作用!
select emp_id Emp ID, start_time timing
from data
union all
select emp_id Emp ID, last_time timing
from data