admin管理员组

文章数量:1530844

2024年7月12日发(作者:)

Sql常见面试题 受用了

1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名

name kecheng fenshu

张三 语文 81

张三 数学 75

李四 语文 76

李四 数学 90

王五 语文 81

王五 数学 100

王五 英语 90

A: select distinct name from table where name not in (select distinct name from table

where fenshu<=80)

select name from table group by name having min(fenshu)>80

2. 学生表 如下:

自动编号 学号 姓名 课程编号 课程名称 分数

1 2005001 张三 0001 数学 69

2 2005002 李四 0001 数学 89

3 2005001 张三 0001 数学 69

删除除了自动编号不同, 其他都相同的学生冗余信息

A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group

by 学号, 姓名, 课程编号, 课程名称, 分数)

3.

一个叫

team 的表,里面只有一个字段name, 一共有4 条纪录,分别是

a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可

能的比赛组合.

你先按你自己的想法做一下,看结果有我的这个简单吗?

答:select ,

from team a, team b

where <

4.

请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101

科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12

月份的发生额。

AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。

数据库名:JcyAudit ,数据集:Select * from TestDB

答:select a.*

from TestDB a

,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where

AccID='101' group by Occmonth) b

where th=th and ccur>101ccur

*********************************************************************

***************

5.

面试题:怎么把这样一个表儿

year month amount

1991 1 1.1

1991 2 1.2

1991 3 1.3

1991 4 1.4

1992 1 2.1

1992 2 2.2

1992 3 2.3

1992 4 2.4

查成这样一个结果

year m1 m2 m3 m4

1991 1.1 1.2 1.3 1.4

1992 2.1 2.2 2.3 2.4

本文标签: 编号月份发生额科目