部门表:
create table TEST1
(
D_NAME VARCHAR2(30),
START_DATE DATE,
END_DATE DATE,
D_CODE VARCHAR2(10)
)表的记录:
D_NAME START_DATE END_DATE D_CODE
广东 2011-1-1 2011-1-31 1
香港 2011-2-1 9999-2-18 1
现在如果限定D_CODE=1 并传入一个时间为2011-1-15,则能取得部门名称为“广东”;如果传入的时间为2011-3-1,则可以取得部门名为“香港”。
现在有个问题,设定传入的时间为2011-1-15,怎样写一个select语句,取得“广东”这个已失效的部门?不能用游标、存储过程,只能用select.
create table TEST1
(
D_NAME VARCHAR2(30),
START_DATE DATE,
END_DATE DATE,
D_CODE VARCHAR2(10)
)表的记录:
D_NAME START_DATE END_DATE D_CODE
广东 2011-1-1 2011-1-31 1
香港 2011-2-1 9999-2-18 1
现在如果限定D_CODE=1 并传入一个时间为2011-1-15,则能取得部门名称为“广东”;如果传入的时间为2011-3-1,则可以取得部门名为“香港”。
现在有个问题,设定传入的时间为2011-1-15,怎样写一个select语句,取得“广东”这个已失效的部门?不能用游标、存储过程,只能用select.
(SELECT 'guangdong' as d_name,to_date('2011-1-1','YYYY-MM-DD') as start_date,to_date('2011-1-31','YYYY-MM-DD') as end_date,'1'as d_code from dual
union all
SELECT 'hongkong' as d_name,to_date('2011-2-1','YYYY-MM-DD') as start_date,to_date('9999-2-18','YYYY-MM-DD') as end_date,'1'as d_code from dual
)
select * from a
where d_code=1
and to_date('2011-1-15','YYYY-MM-DD')>start_date and to_date('2011-1-15','YYYY-MM-DD')<end_date