这并不能完全回答MSSQL中的问题。我知道有MySQL的口味做到这一点,虽然
declare @tempTable TABLE (dt_timeOfProgram datetime, str_name varchar(10));
insert into @tempTable values
('2003-10-20 17:00', 'Factor'),
('2003-10-21 17:00', 'Factor'),
('2003-10-22 17:00', 'Factor'),
('2003-10-20 19:00', 'Form'),
('2003-10-21 14:00', 'Factor');
select
REPLACE(REPLACE(REPLACE(dow, '</dow><dow>', ','), '<dow>',''),'</dow>', '') as DOW
, [time]
, [showName]
from ( select distinct
CAST(dt_timeOfProgram as time) as [time],
str_name [showName],
( SELECT DATENAME(dw, t1.dt_timeOfProgram) as [dow]
FROM @tempTable t1
where t1.str_name=t2.str_name
and CAST(t1.dt_timeOfProgram as time) = CAST(t2.dt_timeOfProgram as time)
order by t1.dt_timeOfProgram
for XML PATH('')) [dow]
from @tempTable t2) as t
这里是结果集
Tuesday 14:00:00.0000000 Factor
Monday,Tuesday,Wednesday 17:00:00.0000000 Factor
Monday 19:00:00.0000000 Form
这是非常草率的工作虽然。我绝不会在实时应用程序中执行此操作。这个逻辑将由业务逻辑而不是数据库来处理。
数据库资源一般是LEASE可扩展的。所以最后,你想尽可能少地使用它们。
好运
你可以用'选择工作日(空气)' – fedorqui 2013-04-11 12:01:16
什么口味的SQL服务器您使用的是? – 2013-04-11 12:02:41
'选择 \t id_program为ID, \t标题, \t时间(空气)AS时, \t DAYNAME(空气)AS一周中的某天 从程序,其中标题= '因子' 为了通过时间;' 这是怎么我获取程序和他们的时间,但如果存在像我问的方式组? – Moldaone 2013-04-11 12:03:03