SQL面试题

原创 2007年09月20日 01:50:00
SQL面试题 (一)
有一个张员工工资表(SALARY),表有三列:员工编号(ID),工资(SALARY)
1.查询id重复记录
2.删除id重复记录,只保留第一条(说明,不需要考虑表中存在完全相同纪录的情况)
SQL语句如下:
CREATE TABLE SALARY(
              ID INT NOT NULL,
               SALARY MONEY NOT NULL
)
INSERT INTO SALARY
SELECT 1,1000
UNION ALL SELECT 1,800
UNION ALL SELECT 2,1200
UNION ALL SELECT 3,1100
UNION ALL SELECT 3,1200
UNION ALL SELECT 3,1300
SELECT * FROM SALARY
-- 1
SELECT *
FROM SALARY
WHERE ID IN
              (
              SELECT ID
              FROM SALARY
              GROUP BY ID
              HAVING COUNT(*)>1
              )
-- 2
DELETE T
FROM SALARY T
WHERE EXISTS(SELECT 1 FROM SALARY WHERE T.ID=ID AND SALARY>T.SALARY)

 

 

  SQL面试题 (二)

有一张工资表,包含三列:员工编号(ID),部门编号(GROUPS),工资(SALARY)
1. .找到每个部门工资最高的人(包括并列第一)
2. 找到每个部门工资最高的人(只选一个)
SQL语句如下:
DECLARE @G TABLE(ID INT,GROUPS NVARCHAR(20),SALARY MONEY)
INSERT INTO @G
SELECT 1,1,1000
UNION ALL SELECT 2,1,1000
UNION ALL SELECT 3,1,800
UNION ALL SELECT 4,2,2000
-- 1
SELECT *
FROM @G G
WHERE NOT EXISTS(SELECT 1 FROM @G WHERE GROUPS=G.GROUPS AND SALARY>G.SALARY)
 
SELECT G.*
FROM @G G
INNER JOIN
        (
        SELECT GROUPS,MAX(SALARY) AS SALARY
        FROM @G
        GROUP BY GROUPS
        )T
ON      G.GROUPS=T.GROUPS
AND     G.SALARY=T.SALARY
-- 2
SELECT MIN(G.ID),G.GROUPS,G.SALARY
FROM @G G
INNER JOIN
(
SELECT GROUPS,MAX(SALARY) AS SALARY
FROM @G
GROUP BY GROUPS
)T
ON      G.GROUPS=T.GROUPS
AND     G.SALARY=T.SALARY
GROUP BY G.GROUPS,G.SALARY
一定有更好的方法,请不吝赐教。

 

经典sql面试题

有3个表S,C,SC S(SNO,SNAME)代表(学号,姓名) C(CNO,CNAME,CTEACHER)代表(课号,课名,教师) SC(SNO,CNO,SCGRADE)代表(学号...
  • zsw12013
  • zsw12013
  • 2016年04月10日 00:37
  • 766

【笔试/面试】SQL 经典面试题

基本概念 (1)any/all,构成 where 子句的条件判断,any:表示或(or)的概念,all:则表示与(and)的概念,这两个关键字的出现是为了语句的简化; (2)先分组再做聚合,逻辑上也应...
  • lanchunhui
  • lanchunhui
  • 2016年04月05日 23:17
  • 8203

sql常见面试题 (我觉得太好了)

Sql常见面试题 受用了 1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三     语文       81 张三    ...
  • u012467492
  • u012467492
  • 2015年07月07日 15:29
  • 87204

Sql常见面试题 受用了

1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三    语文       81 张三     数学       75 李四  ...
  • LeehomeYU
  • LeehomeYU
  • 2017年04月22日 14:26
  • 627

一个SQL面试题

......一个看似简单,实则容易踩坑的例子     记得以前有次被面试问到SQL,当时没答上来,当时也没鼓捣出来(当时对SQL也确实太不熟了(⊙o⊙))。     今天突然想起来了,就重新拿出来...
  • anxpp
  • anxpp
  • 2016年07月13日 00:05
  • 1173

经典SQL面试题

以下题目都在MySQL上测试可行,有疏漏或有更优化的解决方法的话欢迎大家提出,我会持续更新的:) 有三个表,如果学生缺考,那么在成绩表中就不存在这个学生的这门课程成绩的记录,写一段SQL语句,检...
  • dl0914791011
  • dl0914791011
  • 2013年11月25日 09:48
  • 12052

经典SQL练习题5----面试题及答案

SQL经典面试题及答案 1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 200...
  • oChangWen
  • oChangWen
  • 2016年05月02日 20:04
  • 4048

sql经典面试题汇总(可以本地测试练习)

1.表名:number ID(number型) Name(varchar2型) 1 a 2 b 3 b 4 a 5 c 6 c 要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的...
  • tomcat_2014
  • tomcat_2014
  • 2016年11月29日 17:58
  • 702

SQL经典面试题及答案

转载自:http://blog.csdn.net/hwq1987/article/details/6670300 SQL经典面试题及答案 2007年07月27日 星期五 上午 08:42 ...
  • wickedvalley
  • wickedvalley
  • 2016年06月16日 17:27
  • 21143

SQL经典面试题目总结

Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语...
  • ghevinn
  • ghevinn
  • 2013年03月14日 16:59
  • 23760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL面试题
举报原因:
原因补充:

(最多只允许输入30个字)