SQL经典面试题及答案

合集下载

sql语句面试题及答案

sql语句面试题及答案

sql语句面试题及答案一、基本查询1. 简单查询请问如何查询一个表中的所有记录?答:可以使用SELECT * FROM table_name; 命令来查询表中的所有记录。

2. 条件查询如果我只想查询特定条件下的记录,例如查询年龄大于30的员工信息,应该怎么做?答:可以使用WHERE子句来进行条件查询,语句如下:SELECT * FROM employees WHERE age > 30;3. 限制查询结果在查询时,如果只想获取前5条记录,应该如何操作?答:可以使用LIMIT关键字来限制查询结果的数量,语句如下:SELECT * FROM table_name LIMIT 5;二、聚合查询1. 计数如何计算某个表中的记录数?答:可以使用COUNT()函数来计算表中的记录数,语句如下:SELECT COUNT(*) FROM table_name;2. 求和如果需要计算某列的总和,例如计算销售总额,应该怎么做?答:可以使用SUM()函数来计算某列的总和,语句如下:SELECT SUM(sales_amount) FROM sales_table;3. 平均值如何求某列的平均值,比如平均工资?答:可以使用AVG()函数来计算某列的平均值,语句如下:SELECT AVG(salary) FROM employees;三、分组查询1. 分组统计请问如何按照某个字段进行分组,并计算每个分组的记录数?答:可以使用GROUP BY子句来进行分组统计,语句如下:SELECT department, COUNT(*) FROM employees GROUP BY department;2. 多列分组如果需要按照多个字段进行分组,应该如何操作?答:可以在GROUP BY子句中列出所有需要分组的字段,语句如下:SELECT department, job_title, COUNT(*) FROM employees GROUP BY department, job_title;3. 分组聚合运算在分组查询中,如何对每个分组执行聚合运算,例如计算每个部门的最高工资?答:可以使用GROUP BY子句结合聚合函数来进行分组聚合运算,语句如下:SELECT department, MAX(salary) AS max_salary FROM employees GROUP BY department;四、连接查询1. 内连接如何查询两个表中有关联的记录?答:可以使用INNER JOIN来查询两个表中有关联的记录,语句如下:SELECT * FROM table1 INNER JOIN table2 ON mon_field = mon_field;2. 左连接如果需要查询左表的所有记录,以及右表中与之关联的记录,没有关联的则显示NULL,应该怎么做?答:可以使用LEFT JOIN来实现,语句如下:SELECT * FROM table1 LEFT JOIN table2 ON mon_field = mon_field;3. 右连接请问如何查询右表的所有记录,以及左表中与之关联的记录?答:可以使用RIGHT JOIN来实现,语句如下:SELECT * FROM table1 RIGHT JOIN table2 ON mon_field = mon_field;五、子查询1. 非相关子查询在查询时,如果需要在WHERE子句中使用一个SELECT语句作为条件,应该怎么做?答:可以使用非相关子查询来实现,语句如下:SELECT * FROM table1 WHERE column_name IN (SELECT column_name FROM table2);2. 相关子查询如果子查询需要引用外部查询的列,应该怎么做?答:可以使用相关子查询,在子查询中使用外部查询的列,语句如下:SELECT * FROM table1 WHERE column_name = (SELECT column_name FROM table2 WHERE related_column = table1.related_column);六、更新和删除操作1. 更新数据请问如何使用SQL语句来更新表中的记录?答:可以使用UPDATE语句来更新表中的记录,语句如下:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;2. 删除数据如果需要删除表中的某些记录,应该如何操作?答:可以使用DELETE语句来删除记录,语句如下:DELETE FROM table_name WHERE condition;七、排序和索引1. 排序查询结果如何对查询结果进行排序?答:可以使用ORDER BY子句对查询结果进行排序,语句如下:SELECT * FROM table_name ORDER BY column_name ASC/DESC;2. 创建索引为了提高查询效率,如何为表中的列创建索引?答:可以使用CREATE INDEX语句来创建索引,语句如下:CREATE INDEX index_name ON table_name (column_name);通过以上问题的探讨,我们了解了SQL语句在面试中常见的问题及答案。

面试经典50题sql解析

面试经典50题sql解析

面试经典50题sql解析在数据库领域中,SQL是一种常用的查询语言,也是面试中经常被问到的重要知识点。

下面将解析面试中经典的50个SQL问题。

1. 什么是SQL?SQL(Structured Query Language)是一种用于管理关系型数据库的语言,用于查询、插入、更新和删除数据。

2. 什么是关系型数据库?关系型数据库是一种以表格形式存储数据的数据库,其中数据之间存在关系。

3. 什么是主键?主键是一列或一组列,用于唯一标识表中的每一行数据。

4. 什么是外键?外键是一列或一组列,用于建立表与表之间的关系。

5. 什么是索引?索引是一种数据结构,用于加快数据库查询的速度。

6. 什么是事务?事务是一组数据库操作,要么全部执行成功,要么全部回滚。

7. 什么是ACID属性?ACID是指数据库事务应具备的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

8. 什么是视图?视图是一种虚拟表,由查询语句定义,可以简化复杂的查询操作。

9. 什么是触发器?触发器是一种特殊的存储过程,当满足特定条件时自动执行。

10. 什么是存储过程?存储过程是一组预编译的SQL语句,可以在数据库中存储和重复使用。

11. 什么是游标?游标是一种用于遍历查询结果集的数据库对象。

12. 什么是连接?连接是将两个或多个表中的数据关联起来的操作。

13. 什么是内连接?内连接是根据两个表之间的共同值将数据连接起来。

14. 什么是外连接?外连接是根据两个表之间的共同值将数据连接起来,并包括没有匹配的数据。

15. 什么是子查询?子查询是嵌套在其他查询语句中的查询语句。

16. 什么是联合查询?联合查询是将多个查询结果合并成一个结果集的操作。

17. 什么是交叉连接?交叉连接是将一个表的每一行与另一个表的每一行进行组合的操作。

18. 什么是聚合函数?聚合函数是对一组数据进行计算并返回单个值的函数,如SUM、AVG、COUNT等。

sql优化面试题

sql优化面试题

sql优化面试题答案一:在进行SQL性能优化的时候,我们需要关注以下几个方面:1. 数据库结构优化:a. 合理设计表结构,避免过多冗余字段和无效索引的存在。

b. 设计适当的主键和外键,以提升查询效率。

c. 使用合适的数据类型,减少存储空间和提高查询性能。

2. 索引优化:a. 合理创建索引,对于经常用于查询的字段和JOIN操作的关联字段,可以考虑创建索引。

b. 避免创建过多的索引,因为索引的更新和维护也会带来性能开销。

c. 定期对索引进行优化和重建,以提高查询性能。

3. SQL查询优化:a. 使用合适的查询语句,避免使用过于复杂的SQL语句。

b. 避免使用SELECT *,只选取需要的字段,减少数据传输。

c. 调整查询顺序,优化JOIN操作的顺序和条件。

d. 避免使用子查询,可以将子查询转换为JOIN操作或者临时表的方式实现。

e. 尽量减少数据库访问次数,使用批量操作替代逐条操作。

4. 数据库配置优化:a. 合理配置数据库连接池,避免过多的空闲连接和频繁的连接创建。

b. 调整数据库参数,如缓存大小、并发连接数等,以适应具体的应用场景。

5. SQL语句调优:a. 使用Explain分析SQL语句执行计划,根据执行计划来优化查询语句。

b. 使用合适的JOIN方式,避免全表扫描和笛卡尔积等低效操作。

c. 避免使用OR条件,可以使用IN或者UNION替代。

d. 使用LIMIT限制返回的行数,避免返回大量无用数据。

6. 数据库缓存优化:a. 合理利用数据库缓存,缓存经常使用的查询结果和数据。

b. 使用合适的缓存策略,如LRU(最近最少使用)等。

综上所述,SQL优化不是一蹴而就的任务,需要我们综合考虑数据库结构、索引、查询语句、数据库配置以及缓存等各个方面的优化策略。

只有全面考虑并有针对性地进行优化,才能提升数据库的性能和响应速度。

答案二:在面试中,SQL优化是一个常见的话题。

下面我将介绍一些SQL 优化的面试题及其解答:1. 什么是SQL优化,为什么需要进行SQL优化?SQL优化是通过调整和优化SQL语句的结构、索引和查询方式,以提升数据库的性能和响应速度。

sql语句面试题及答案

sql语句面试题及答案

sql语句面试题及答案本文将为您提供一些常见的SQL语句面试题,并给出相应的答案。

通过阅读本文,您将对SQL语句有更深入的了解,从而在面试中更加自信。

一、查询相关的面试题1. 如何用SQL语句查询一张表的所有记录?答案:使用SELECT语句来查询表中的所有记录,语法为:SELECT * FROM 表名;2. 如何查询指定条件的记录?答案:使用SELECT语句的WHERE子句来查询指定条件的记录,语法为:SELECT * FROM 表名 WHERE 条件;3. 如何对查询结果进行排序?答案:使用SELECT语句的ORDER BY子句来对查询结果进行排序,语法为:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;4. 如何获取查询结果的前几条记录?答案:使用SELECT语句的TOP或LIMIT子句来获取查询结果的前几条记录,语法为:SELECT TOP 数量 * FROM 表名; 或 SELECT * FROM 表名 LIMIT 数量;5. 如何对查询结果进行分页?答案:使用SELECT语句的LIMIT子句来实现分页效果,语法为:SELECT * FROM 表名 LIMIT 起始位置, 每页数量;二、插入、更新和删除相关的面试题1. 如何插入一条新记录?答案:使用INSERT INTO语句来插入一条新记录,语法为:INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3);2. 如何更新已有的记录?答案:使用UPDATE语句来更新已有的记录,语法为:UPDATE表名 SET 列名 = 新值 WHERE 条件;3. 如何删除指定的记录?答案:使用DELETE FROM语句来删除指定的记录,语法为:DELETE FROM 表名 WHERE 条件;三、聚合函数相关的面试题1. 如何计算表中记录的数量?答案:使用COUNT(*)函数来计算表中记录的数量,语法为:SELECT COUNT(*) FROM 表名;2. 如何计算某一列的总和?答案:使用SUM(列名)函数来计算某一列的总和,语法为:SELECT SUM(列名) FROM 表名;3. 如何计算某一列的平均值?答案:使用AVG(列名)函数来计算某一列的平均值,语法为:SELECT AVG(列名) FROM 表名;四、连接查询相关的面试题1. 如何在两个表之间进行连接查询?答案:使用JOIN语句来进行连接查询,语法为:SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列;2. 如何实现左连接和右连接?答案:使用LEFT JOIN或RIGHT JOIN来实现左连接和右连接,语法为:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列 = 表2.列; 或SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列 = 表2.列;五、其他面试题1. 如何创建一个新表?答案:使用CREATE TABLE语句来创建一个新表,语法为:CREATE TABLE 表名 (列1 数据类型, 列2 数据类型, 列3 数据类型);2. 如何修改表的结构?答案:使用ALTER TABLE语句来修改表的结构,语法为:ALTER TABLE 表名 ADD 列名数据类型; 或 ALTER TABLE 表名DROP 列名;3. 如何在表中创建索引?答案:使用CREATE INDEX语句来在表中创建索引,语法为:CREATE INDEX 索引名 ON 表名 (列名);总结:本文介绍了一些常见的SQL语句面试题和对应的答案,涵盖了查询、插入、更新、删除、聚合函数、连接查询、表的创建和修改等方面。

sql面试必会6题经典

sql面试必会6题经典

sql面试必会6题经典面试题
1. SQL有哪些数据类型?
SQL数据类型包括:数值类型(整数、实数、位类型)、字符串类型(字符串、固定长度字符串、可变长度字符串)、日期/时间类型、二进制类型以及用户自定义的特殊类型。

2. 什么是 SQL 联合查询?
SQL联合查询是一种在单个查询中使用多个表进行信息检索的技术,可以将多个相关表中的数据检索出来并进行合并显示。

常用的联合查询有内连接(Inner Join)、左外连接(Left Join)、右外连接(Right Join)、全外连接(Full Join)等。

3. 什么是 SQL 索引?
SQL索引是数据库表中用于快速检索数据的数据结构,它可以加快数据库表中某一列或多列上的查询速度。

常见的索引类型有B树索引、哈希索引、空间索引等。

4. 什么是SQL视图?
SQL视图是一种虚拟表,用于从一个或多个表中检索数据,并提供一种抽象的方法来访问表中的数据。

它可以让用户只能看到所需要看到的列和行,而不需要查看整个表。

5. SQL语句有哪些?
SQL语句有以下几种:CREATE(创建)、SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)、ALTER(修改)、DROP(删除)等。

6. 什么是子查询?
子查询是一种在SQL语句中嵌套另一个完整的SQL语句的查询,它可以从其它表中检索数据,也可以从当前表中检索数据。

它可以让你更有效地检索数据,并且可以让你在不使用连接的情况下实现类似于连接的结果。

SQL常见面试题及答案整理

SQL常见面试题及答案整理

SQL常见⾯试题及答案整理本⽂转载⾃公众号:风控圈⼦,作者:研习社-winnie。

如有侵权,请联系我删除。

每天早上8点半⼀起实现⾃我增值1理论篇1、什么是SQL?SQL(结构化查询语⾔)是⼀种设计⽤于检索和操作数据的数据库。

它属于美国国家标准协会(ANSI)的⼀种标准,可⽤于执⾏Select(选择)、Update(更新)、Delete(删除)和Insert(插⼊)等数据任务。

2、数据库中的表和字段是什么?数据库是有序形式的⼀组信息,⽤于访问、存储和检索数据,表是在具有列和⾏的模型中设计的数据集合。

在表中,指定了列数称为字段,但未定义⾏数称为记录。

3、DBMS的类型是什么?DBMS是⼀个控制数据维护和使⽤的程序,它被认为是管理数据的⽂件管理器。

有四种类型的DBMS:关系DBMS分层DBMS⽹络DBMS⾯向对象的关系DBMS,最有⽤的DBMS是Relational DBMS。

它为数据提供了⼀个关系运算符。

4、SQL中的视图是什么?它包含来⾃⼀个或多个表的⾏和列,可以定义为虚拟表。

它消耗的内存较少。

句法:CREATE VIEW view_name ASSELECT column_name1, column_name2FROM table_nameWHERE CONDITION;5、什么是SQL中的Joins(连接)?Join⽤于从相关的⾏和列中检索数据。

它在两个或多个表之间⼯作,并且它从两个表返回⾄少⼀个匹配。

Joins类型是:Right Join (右连接)Left Join(左连接)Inner Join(内连接)Outer Join(外连接)Self-Join (⾃连接)Cross Join(交叉连接)·Full Join(全连接)6、SQL中的Constraints(约束)是什么?它可⽤于设置表中数据类型的限制。

在创建或更新表语句时,可以使⽤约束。

⼀些限制是:NOT NULLPRIMARY KEYFOREIGN KEYUNIQUECHECKDEFAULT7、SQL中有多少Key(键),它们如何⼯作?SQL中有不同类型的键:SuperKey(超级密钥)——⼀个或多个密钥的集合被定义为超级密钥,它⽤于唯⼀地标识表中的记录。

SQL面试题及答案

SQL面试题及答案
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');
update SC set score=(select avg(SC_2.score)
from SC SC_2
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');
4、查询姓“李”的老师的个数;
select count(distinct(Tname))
from Teacher
where Tname like '李%';
5、查询没学过“叶平”老师课的同学的学号、姓名;
select Student.S#,Student.Sname
14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;

经典sql面试题及答案

经典sql面试题及答案

SQL面试题数据结构如下:模拟数据:ss1:选修过“李明”老师讲授课程的所有学生姓名步骤:1找到选修老师的学生id参考答案1参考答案22:找出没有选修过“李明”老师讲授课程的所有学生姓名步骤1 找见选修李明老师的学生参考答案1参考答案23:列出有两门以上(含两门)不及格课程的学生姓名及其平均成绩步骤:找见不及格的成绩的数量大于2的学生id参考答案1参考答案24:列出即学过名称为“1”号课程,又学过名称为“2”号课程的所有学生姓名步骤1 查询出课程1步骤2 查询出课程2参考答案1参考答案25:列出名称为“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号步骤1 找出课程1的所有成绩步骤2找出2号同学的成绩参考答案1参考答案26:列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩步骤1 找出一号课的成绩步骤2找出2号课的成绩参考答案1参考答案27:查询不选修课程编号为'5'学员的编号,姓名步骤:先查出选修5课程的学员参考答案1参考答案28:查询选修课程编号为'1'学员的编号,姓名步骤1 查询选修课程1的学号参考答案1参考答案29:查询选修课程名称为'5'的学员的编号,姓名步骤: 找出选修课程名称为5的学员编号参考答案1参考答案210:查询选修了课程的学员人数参考答案1参考答案211:查询选修全部课程的学员的编号,姓名步骤1 查询出一共有多少课程步骤2 查询用户的选修参考答案12:查询选修课程超过2门的学生步骤1 查询出一共有多少课程参考答案13:查询至少有3名学生选修的并且课程号2为的学生及平均分数步骤:至少有3名学生选修的参考答案14:查询学生选修了至少3门课程并且课程号3为的学生及平均分数步骤1 学生选修了至少3门课程参考答案115:查询最低分数大于60分,最高分数小于95分的学生学生的编号步骤1 先找出每个学生的最高分步骤2 找出最低分参考答案1参考答案216:显示选修了课程名称为“1”号课程的成绩高于“7”号同学成绩的所有同学的学生的编号步骤找出课程1的成绩步骤2 找出7号同学1号课程的成绩参考答案参考答案217:查询成绩比该课程平均成绩低的同学的成绩表步骤1:找出每门课程的平均成绩参考答案118:查询选修某课程的同学人数多于2人的课程号,课程名,教师姓名步骤找出选修的人数达鱼2人的课程id参考答案1参考答案219:横向列出每个学生的成绩(假说固定有门课程)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL经典面试题及答案1.一道SQL语句面试题,关于group by 表内容:2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2005-05-10 负如果要生成下列结果, 该如何写sql语句?胜负2005-05-09 2 22005-05-10 1 2------------------------------------------create table #tmp(rq varchar(10),shengfu nchar(1))insert into #tmp values('2005-05-09','胜') insert into #tmpvalues('2005-05-09','胜') insert into #tmp values('2005-05-09','负') insert into #tmp values('2005-05-09','负')insert into #tmp values('2005-05-10','胜')'负') insert into #tmp values('2005-05-10',insert into #tmpvalues('2005-05-10','负')1)select rq, sum(case when shengfu='胜' then 1 else 0 end)'胜',sum' then 1 else 0 end)'负' from #tmp group (case when shengfu='负byrq2) select N.rq,N.勝,M.負 from (select rq,勝=count(*) from #tmp where shengfu='胜'group by rq)N inner join(select rq,負=count(*) from #tmp where shengfu='负'group by rq)M on N.rq=M.rq3)select a.col001,a.a1 胜,b.b1 负 from(select col001,count(col001) a1 from temp1 where col002='胜'groupby col001) a,(select col001,count(col001) b1 from temp1 where col002='负' group by col001) bwhere a.col001=b.col0012.请教一个面试中遇到的SQL语句的查询问题表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B 列,当B列大于C列时选择B列否则选择C列。

------------------------------------------select (case when a>b then a else b end ),(case when b>c then b esle c end) from table_name3.面试题:一个日期判断的sql语句,请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)------------------------------------------elect * from tb where datediff(dd,SendTime,getdate())=0 s4.有一张表,里面有3个字段:语文,数学,英语。

其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。

显示格式:语文数学英语及格优秀不及格 ------------------------------------------select(case when 语文>=80 then '优秀'when 语文>=60 then '及格'else '不及格') as 语文,(case when 数学>=80 then '优秀'when 数学>=60 then '及格'else '不及格') as 数学,(case when 英语>=80 then '优秀'when 英语>=60 then '及格'else '不及格') as 英语,from table5.在sqlserver2000中请用sql创建一张用户临时表和系统临时表,里面包含两个字段ID和IDValues,类型都是int型,并解释下两者的区别? ------------------------------------------ 用户临时表:create table #xx(ID int, IDValues int)系统临时表:create table ##xx(ID int, IDValues int)区别:用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.当创建它的进程消失时这个临时表就自动删除.全局临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失它也自动删除. 的时候,6.sqlserver2000是一种大型数据库,他的存储容量只受存储介质的限制,请问它是通过什么方式实现这种无限容量机制的。

------------------------------------------它的所有数据都存储在数据文件中(*.dbf),所以只要文件够大,SQLServer的存储容量是可以扩大的.SQL Server 2000 数据库有三种类型的文件:主要数据文件主要数据文件是数据库的起点,指向数据库中文件的其它部分。

每个数据库都有一个主要数据文件。

主要数据文件的推荐文件扩展名是 .mdf。

次要数据文件次要数据文件包含除主要数据文件外的所有数据文件。

有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。

次要数据文件的推荐文件扩展名是 .ndf。

日志文件日志文件包含恢复数据库所需的所有日志信息。

每个数据库必须至少有一个日志文件,但可以不止一个。

日志文件的推荐文件扩展名是 .ldf。

7.请用一个sql语句得出结果从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。

如使用存储过程也可以。

table1月份mon 部门dep 业绩yj-------------------------------一月份 01 10 一月份 02 10 一月份 03 5 二月份 02 8 二月份 04 9 三月份03 8table2部门dep 部门名称dname --------------------------------01 国内业务一部02 国内业务二部03 国内业务三部04 国际业务部table3 (result)部门dep 一月份二月份三月份--------------------------------------01 10 null null02 10 8 null03 null 5 804 null null 9------------------------------------------ 1)select a.部门名称dname,b.业绩yj as '一月份',c.业绩yj as '二月份',d.业绩yj as '三月份'from table1 a,table2 b,table2 c,table2 d where a.部门dep = b.部门dep and b.月份mon = '一月份' and a.部门dep = c.部门dep and c.月份mon = '二月份' anda.部门dep = d.部门dep and d.月份mon = '三月份' and2)select a.dep,sum(case when b.mon=1 then b.yj else 0 end) as '一月份',sum(case when b.mon=2 then b.yj else 0 end) as '二月份',sum(case when b.mon=3 then b.yj else 0 end) as '三月份',sum(case when b.mon=4 then b.yj else 0 end) as '四月份',sum(case when b.mon=5 then b.yj else 0 end) as '五月份',sum(case when b.mon=6 then b.yj else 0 end) as '六月份',sum(case when b.mon=7 then b.yj else 0 end) as '七月份',sum(case when b.mon=8 then b.yj else 0 end) as '八月份',sum(case when b.mon=9 then b.yj else 0 end) as '九月份',sum(case when b.mon=10 then b.yj else 0 end) as '十月份',sum(case when b.mon=11 then b.yj else 0 end) as '十一月份',sum(case when b.mon=12 then b.yj else 0 end) as '十二月份',from table2 a left join table1 b on a.dep=b.dep8.华为一道面试题一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。

相关文档
最新文档