现在我有一个学历表,
工号,学校名,专业名,学历名,开始日期, 结束日期
001,学校1, 专业1, 学历1, 2012-01-10,2012-06-01
001,学校2, 专业2, 学历2, 2012-07-01,2012-12-01
假如有这样的数据时,我现在想查出来的是
表在字段再加,是否是最终学历的字段,如果是显示1,非则显示0,
判断条件是,若结束日期最大的按1显示,其它均显示0,如按如上例子,我想查的结果是,001,学校1, 专业1, 学历1, 2012-01-10,2012-06-01, 0
001,学校2, 专业2, 学历2, 2012-07-01,2012-12-01,1请问这个怎么写查询语句,在线等,谢谢。
工号,学校名,专业名,学历名,开始日期, 结束日期
001,学校1, 专业1, 学历1, 2012-01-10,2012-06-01
001,学校2, 专业2, 学历2, 2012-07-01,2012-12-01
假如有这样的数据时,我现在想查出来的是
表在字段再加,是否是最终学历的字段,如果是显示1,非则显示0,
判断条件是,若结束日期最大的按1显示,其它均显示0,如按如上例子,我想查的结果是,001,学校1, 专业1, 学历1, 2012-01-10,2012-06-01, 0
001,学校2, 专业2, 学历2, 2012-07-01,2012-12-01,1请问这个怎么写查询语句,在线等,谢谢。
解决方案 »
- 在本地导出远程数据库到本地:是先建立database link, 还是在本地先建立远程服务器的服务命名并加入监听,然后用exp导出???
- 有关多表查询的问题
- 从第二行开始排序
- 如果实现TOAD中那种数据检索方式?
- 执行insert操作时数据库报错:ORA-12535:TNS:操作超时
- 急!有关oracle 9i的安装问题
- 请问那里有关于sql的简介,关于sql语法。
- 菜鸟请教!!急
- 各位大侠,请问谁知道有没有oracle公司自己提供的认证培训?
- 新手提问,送分!!请问我在WIN2K专业版下装ORCALE8I,可是总是SETUP以后,什么反映也没有。而且我在多台机子上都不行。可以肯定的是这些
- 关于导入表空间的问题。
- oracle可以在查询中更新数据吗?
select '001' as str1,'2012-01-10' as ed from dual
union all
select '001' as str1,'2012-02-10' as ed from dual
union all
select '002' as str1,'2012-01-10' as ed from dual
union all
select '003' as str1,'2011-07-10' as ed from dual
union all
select '003' as str1,'2011-08-10' as ed from dual
union all
select '003' as str1,'2011-09-10' as ed from dual
)
select str1,ed,decode(rn,1,1,0) as resultflg from (
select row_number()over(partition by str1 order by ed desc) as rn,str1,ed from test)=================================================
1 001 2012-02-10 1
2 001 2012-01-10 0
3 002 2012-01-10 1
4 003 2011-09-10 1
5 003 2011-08-10 0
6 003 2011-07-10 0
SQL> desc 学历表
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------- 工号 NUMBER(5)
学校 VARCHAR2(10)
专业名 VARCHAR2(10)
开始日期 DATE
结束日期 DATESQL> select * from 学历表; 工号 学校 专业名 开始日期 结束日期
---------- ---------- ---------- ---------- ----------
1 南开大学 外语 06-6月 -00 06-6月 -04
1 复旦大学 数学 01-7月 -05 01-7月 -09
SQL> select 学历表.*, decode(结束日期, (select max(结束日期) from 学历表), '1',
'0') "是否最终学历" from 学历表; 工号 学校 专业名 开始日期 结束日期
---------- ---------- ---------- ---------- ---------- -
1 南开大学 外语 06-6月 -00 06-6月 -04 0
1 复旦大学 数学 01-7月 -05 01-7月 -09 1具体情况你可以再斟酌,也可以加一个字段,存储那个结果 ,然后你自己更新这样就可以持久化了;
DECODE是ORACLE特有的,具体应用你也可以度娘下,如果不熟悉的话,如果不用它你也可以使用CASE WHEN THEN END。这个就不写了。