日期:2014-05-17  浏览次数:20391 次

求个查询语句,时间段的
SQL code

create table ontimek
(
    rq    varchar(20),
    ontime    varchar(8),
    shky    varchar(10)
)

insert into ontimek values ('2010-10-30', '07:00:00', '张三')
insert into ontimek values ('2010-10-30', '08:00:00', '张三')
insert into ontimek values ('2010-10-30', '09:00:00', '张三')
insert into ontimek values ('2010-10-30', '10:00:00', '张三')
insert into ontimek values ('2010-10-30', '11:00:00', '张三')
insert into ontimek values ('2010-10-30', '12:00:00', '张三')
insert into ontimek values ('2010-10-30', '13:00:00', '张三')
insert into ontimek values ('2010-10-30', '14:00:00', '李四')
insert into ontimek values ('2010-10-30', '15:00:00', '李四')
insert into ontimek values ('2010-10-30', '16:00:00', '李四')
insert into ontimek values ('2010-10-30', '17:00:00', '李四')
insert into ontimek values ('2010-10-30', '18:00:00', '李四')
insert into ontimek values ('2010-10-30', '19:00:00', '李四')
insert into ontimek values ('2010-10-30', '20:00:00', '李四')
insert into ontimek values ('2010-10-30', '21:00:00', '李四')


--能不能根据ontime判断查出来的数据07:00:00到13:00:00的时候为A
--14:00:00到21:00:00为B
--能否查询出下面这种结果

rq            ontime            shky        SK
2010-10-30        07:00:00        张三        A
2010-10-30        08:00:00        张三        A
2010-10-30        09:00:00        张三        A
2010-10-30        10:00:00        张三        A
2010-10-30        11:00:00        张三        A
2010-10-30        12:00:00        张三        A
2010-10-30        13:00:00        张三        A
2010-10-30        14:00:00        李四        B
2010-10-30        15:00:00        李四        B
2010-10-30        16:00:00        李四        B
2010-10-30        17:00:00        李四        B
2010-10-30        18:00:00        李四        B
2010-10-30        20:00:00        李四        B
2010-10-30        21:00:00        李四        B



------解决方案--------------------
SQL code
select *,
  sk=case when ontime between '07:00:00' and '13:00:00' then 'A' else 'B' end
from 
  ontimek

------解决方案--------------------
SQL code

select *,
  sk=case 
       when ontime between '07:00:00' and '13:00:00' 
         then 'A' 
       when ontime between '14:00:00' and '21:00:00' 
         then 'B' 
     end
from 
  ontimek

/**
rq                   ontime   shky       sk
-------------------- -------- ---------- ----
2010-10-30           07:00:00 张三         A
2010-10-30           08:00:00 张三         A
2010-10-30           09:00:00 张三         A
2010-10-30           10:00:00 张三         A
2010-10-30           11:00:00 张三         A
2010-10-30           12:00:00 张三         A
2010-10-30           13:00:00 张三         A
2010-10-30           14:00:00 李四         B
2010-10-30           15:00:00 李四         B
2010-10-30           16:00:00 李四         B
2010-10-30           17:00:00 李四         B
2010-10-30           18:00:00 李四         B
2010-10-30           19:00:00 李四         B
2010-10-30           20:00:00 李四         B
2010-10-30           21:00:00 李四         B

(15 行受影响)
**/