前几天在某招聘网站上更新了自己的信息,结果很多招聘电话打过来,本着抓住一切机会学习的心态,我今天下午跟某公司的技术人员聊了约20分钟。主要是一些很基础的内容,但是这种面试形式我还是稍微有点不适应,加上时间很紧迫(一个重要会议需要参加),有点没进入角色就结束了的感觉。聊的时候知道这种情形很常见,自己也曾遇到过,不断回忆之前遇到这种问题的时候是怎么思考的,但也没回想起来。结束之后自己想想,其实都很简单的内容,只是时间稍微有点久了,有点生疏了,作为技术人员,拳不离手,曲不离口,这种东西记不起来,确实有点不应该,在这里反省一下。根据自己的记忆把几个回答得很不好的题目记录下。
1)C# using 关键字里面的类需要实现什么接口?
我脑袋里很清楚知道,using关键字是做非托管资源的释放的,但当时脑袋里闪过一个Dispose单词,我就支支吾吾说不记得了。面试官说,其实答案是IDisposable接口。后来我自己写了一个类来测试。确实是必须要实现IDisposable接口。
2)如何查询某个部门里面的工资最高的员工的信息。
为了方便描述,创建一张表。
<span style="font-family:Microsoft YaHei;">CREATE TABLE [dbo].[T_Salary](
[EmployeeName] [varchar](50) NULL,
[DeptName] [varchar](50) NULL,
[Salary] [decimal](18, 0) NULL
)</span>
插入示例数据
<span style="font-family:Microsoft YaHei;">insert into T_Salary values('EmployeeA','Dept1',10);
insert into T_Salary values('EmployeeB','Dept1',20);
insert into T_Salary values('EmployeeC','Dept1',30);
insert into T_Salary values('EmployeeD','Dept2',40);
insert into T_Salary values('EmployeeE','Dept2',50);
insert into T_Salary values('EmployeeF','Dept2',60);
insert into T_Salary values('EmployeeG','Dept3',70);
insert into T_Salary values('EmployeeH','Dept3',80);
insert into T_Salary values('EmployeeI','Dept3',90);</span>
3)如何查询在A表中,但不在B表中的数据
创建表及插入示例数据
<span style="font-family:Microsoft YaHei;">CREATE TABLE [dbo].[T_A](
[VAR1] [int] NULL,
[VAR2] [int] NULL,
[VAR3] [int] NULL,
[VAR4] [int] NULL
)
CREATE TABLE [dbo].[T_B](
[VAR1] [int] NULL,
[VAR2] [int] NULL,
[VAR3] [int] NULL,
[VAR4] [int] NULL
)
select * from dbo.T_A;
select * from dbo.T_B;
insert into T_A values(1,1,1,1);
insert into T_A values(2,2,2,2);
insert into T_A values(3,3,3,3);
insert into T_B values(1,1,1,1);
insert into T_B values(4,4,4,4);
insert into T_B values(3,3,5,5);</span>
解决方案:
<span style="font-family:Microsoft YaHei;">--方案1
select * from T_A
except
select * from T_B
--方案2
select * from T_A a where
not exists (select * from T_B b
where a.VAR1 = b.VAR1 and a.VAR2 = b.VAR2
and a.VAR3 = b.VAR3 and a.VAR4 = b.VAR4);
--特定列(VAR1,VAR2)
select * from T_A a where not exists
(
select * from T_B b where a.VAR1 = b.VAR1 and a.VAR2 = b.VAR2
)</span>