一道看似简单的面试题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zz_xyz/article/details/84471485
员工表(emp表)
EmpId EmpName EmpSal(员工薪水)
1 ABC 1200
2 BCD 2000
3 EDF 1400

薪水级别表(sal表)
MinSal MaxSal SalClass(薪水级别)
1000 1500 1
1800 2200 2
----------------------------------------------------
请使用一条sql语句列车员工号位”1”的姓名,薪水,薪水级别,同级别人数,平均工资?

SELECT
e.EMP_NAME,
e.EMP_SAL,
s.SAL_CLASS,
f.NUM,
f.AVGNUM
FROM
SAL s,
EMP e,
(
SELECT
COUNT(*)AS NUM,
AVG(e1.EMP_SAL)AVGNUM
FROM
EMP e1,
SAL s1
WHERE
s1.MIN_SAL <= e1.EMP_SAL
AND e1.EMP_SAL <= s1.MAX_SAL
AND s1.SAL_CLASS =(
SELECT
s2.SAL_CLASS
FROM
EMP e2,SAL s2
WHERE
e2.EMP_ID = 1 AND
s2.MIN_SAL < e2.EMP_SAL
AND e2.EMP_SAL < s2.MAX_SAL
)
)f
WHERE
e.EMP_ID = 1
AND s.SAL_CLASS =(
SELECT
s3.SAL_CLASS
FROM
SAL s3
WHERE
s3.MIN_SAL <= e.EMP_SAL
AND e.EMP_SAL <= s3.MAX_SAL
)
AND s.MIN_SAL <= e.EMP_SAL
AND e.EMP_SAL <= s.MAX_SAL;


结果:
ABC 1200 1 2 1300

[color=orange]第二题自己写一个JDBC: 就不会了 还有待修炼啊~~~[/color]
展开阅读全文

两道看似简单面试题,通过率为0

09-19

昨天和同事面试了十几个求职者,大部分人简历上写的是培训班出来的,科班的也有几个。同事现场发挥出了两道题,要求他们现场编程实现一下,我看了下他出的题,第一反应是这小子可真狠,挖了那么大一个大坑给别人跳。废话不多说上题:rn rn 以下题目可以采用自己熟悉的任意语言进行描述: rnrn 第一道题:已知有一家化工厂,日常生产的商品有5种类型,商品名称分别为硫酸(编号001),硝酸(编号002),盐酸(编号003),氢氟酸(编号004)和硫酸亚铁(编号005)。要求编写一个函数用以描述以下内容,通过输入商品名称返回对应的商品编号;rnrn 第二道题:编写一个函数,如果参数输入为“男性”时返回true,如果为“女性”时返回false。(按照中国现行法律考虑,不用考虑其他性别);rnrn 就是这样两道看似极其简单的题,第一道题虽然全部都描述正确了,但是也仅仅只是描述正确而已,从代码看起来没有一个人明白这道题的真正用意。第二道题全部通过了。但是只有两道题都通过才算真正的清楚出题人到底是想考察些什么。其实同事想让他们明白什么时候不应该去过度设计。rnrn 其实我看了第一道题以后,我就估计这次有90%的人要被Pass掉,因为如果只是使用if+else来写的话,就正好掉坑里了。我也不知道他们为什么设计之前不问问自己,如果这样设计的话,日后工厂商品种类增加了或者某个商品的编号改变了怎么办?打开function直接改?既然都已经意识到了函数内部有这样的变化,为什么不去抽象这个变化。然而很遗憾没有一个人使用KeyValuePairs去分离这个变化,当商品种类增加或改变时,直接注册键值对到散列表里或者修改散列表键对应的值就可以了,而不是去修改function。rnrn 再看第二道题,恰恰告诉我们不要去过度设计,因为这里描述的性别除了两种没有其他的可能性(按照中国法律),返回的值改变的可能性也是极低的,用最简单的if+else就可以了。rnrn 大家可以一起讨论讨论rn rn 论坛

没有更多推荐了,返回首页