1.有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录;
类如:

FID   FNO 
101  1001 
101  1001 
102  1002 
102  1003 
103  1004 
104  1005 
104  1006 
105  1007 
105  1007 
105  1007 
结果: 
102  1002 
102  1003 
104  1005 
104  1006
select a.fid,a.fno from table1 a,table b where a.fid=b.fid and a.fno<>b.fno

2.列出HR中所有的表的约束,要求显示的信息包括:约束名,表名,约束类型,约束作用在哪一列上;
select uc.constraint_name,uc.constraint_type,uc.table_name,ucc.column_name
from user_constraints uc,user_cons_columns ucc
where uc.constraint_name=ucc.constraint_name

3.Hr用户的employees表,显示员工108及其所有下属的员工id,last_name,department_id,manager_id;
select employee_id,last_name,department_id,manager_id
from employees
start with employee_id=108
connect by prior employee_id=manager_id

4.使用hr schema,显示员工的id,员工的部门名称,以及部门所在的城市。
select e.employee_id,d.department_id,c.country_name
from employees e join departments d
on(e.department_id=d.department_id)
join locations l
on(d.location_id=l.location_id)
join countries c
on(l.country_id=c.country_id)
5.使用hr schema, 显示每个部门入职时间最长的两位员工的员工id,部门id,以及入职时间;
select * from
(select employee_id,departmnet_id,hire_date,
row_number() over(partition by department_id order by hire_date) rowno
from employees)
where empno<3

6.有如下表:emp_info(id,name,sex,has_car,has_house,married);
    id    name    sex    has_car    has_house    married

    101   mary   female     y          y            n
    202   mike    male      y          y            n
    303   jake    male      n          y            y
    404   susan  female     n          n            n
    505   john   female     y          n            y

  要求:使用一条sql语句,显示公司里一共有多少男性,多少女性,有多少人有车,有多少人有房子,多少人结婚了;sum+decode
select id,
count(sum(decode(sex,'male',1))) males,
count(sum(decode(has_car,'y',1))) has_cars,
count(sum(decode(has_house,'y',1))) has_house,
count(sum(decode(has_house,'y',1))) marrieds
from emp_info
group by id
order by id