SQL Server面试精华:查询难题与合并列技巧
需积分: 13 69 浏览量
更新于2024-09-10
收藏 203KB DOC 举报
本文档主要围绕SQL Server的相关面试题展开,涵盖了SQL查询技巧、数据处理和基本的数据库操作。首先,我们来看第一个问题,如何使用SQL查询找出每门课成绩都大于80分的学生姓名。有两种方法:
1. 方法一:通过子查询排除低于80分的学生,然后选择剩余学生的姓名。SQL语句如下:
```
SELECT DISTINCT name
FROM stu
WHERE name NOT IN (SELECT DISTINCT name FROM stu WHERE fenshu <= 80)
```
这里假设有一个名为"stu"的表,包含学生姓名(name)和各科成绩(fenshu)。
2. 方法二:利用GROUP BY 和 HAVING 子句来统计每个学生各科成绩,并检查至少有3门课程且最低分大于等于80。SQL语句是:
```
SELECT name
FROM stu
GROUP BY name
HAVING COUNT(kecheng) >= 3 AND MIN(fenshu) >= 80
```
接着,是关于SQL查询中数据合并的问题。比如,我们需要合并"FullName"和"FirstName"列,如果其中一个非空则显示其名称,可以使用CASE WHEN语句实现:
```
SELECT Name = CASE
WHEN EMPLOYEE.FullName IS NOT NULL THEN EMPLOYEE.FullName
WHEN EMPLOYEE.FirstName IS NOT NULL THEN EMPLOYEE.FirstName
END
FROM EMPLOYEE
```
第三部分,涉及创建一个名为"tb1"的表,存储学生姓名和各科成绩,以及使用UNION和UNION ALL进行数据记录合并。UNION用于去除重复项,而UNION ALL则保留所有记录,包括重复。例如,以下查询将语文、数学和物理的成绩分别列出,然后合并:
```
CREATE TABLE tb1 (
姓名 VARCHAR(10),
语文 INT,
数学 INT,
物理 INT
)
INSERT INTO tb1 (姓名, 语文, 数学, 物理) VALUES ('张三', 74, 83, 93)
INSERT INTO tb1 (姓名, 语文, 数学, 物理) VALUES ('李四', 74, 84, 94)
SELECT Name AS '姓名', Subject = '语文', Result = 语文
FROM tb1
UNION ALL
SELECT Name AS '姓名', Subject = '数学', Result = 数学
FROM tb1
UNION ALL
SELECT Name AS '姓名', Subject = '物理', Result = 物理
FROM tb1
ORDER BY Name,
CASE WHEN Subject = '语文' THEN 1 WHEN Subject = '数学' THEN 2 WHEN Subject = '物理' THEN 3 END
```
总结起来,这些题目考察了SQL查询的逻辑思维、数据筛选与合并、表结构设计以及基本的SQL操作技巧。掌握这些知识对于应聘SQL Server相关的职位非常重要,能够展现出对数据库管理及数据分析的熟练程度。
2011-05-10 上传
2012-06-04 上传
2009-03-24 上传
2011-08-05 上传
2011-03-10 上传
2010-07-21 上传
2009-09-02 上传
长风_sunny
- 粉丝: 27
- 资源: 86
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍