没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
SQL SERVER 数据库面试题
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)
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 学号,姓名,课程编号,课程名称,分数)
一个叫 department 的表,里面只有一个字段 name,一共有 4 条纪录,分别
是 a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条 sql 语句显示
所有可能的比赛组合.
你先按你自己的想法做一下,看结果有我的这个简单吗?
答:select a.name, b.name
from team a, team b
where a.name < b.name
请用 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 a.Occmonth=b.Occmonth and
a.DebitOccur>b.Debit101ccur
********************************************************
****************************
面试题:怎么把这样一个表儿
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
答案一、
select year,
(select amount from aaa m where month=1 and
m.year=aaa.year) as m1,
(select amount from aaa m where month=2 and
m.year=aaa.year) as m2,
(select amount from aaa m where month=3 and
m.year=aaa.year) as m3,
(select amount from aaa m where month=4 and
m.year=aaa.year) as m4
from aaa group by year
这个是 ORACLE 中做的:
select * from (select name, year b1, lead(year) over
(partition by name order by year) b2, lead(m,2)
over(partition by name order by year) b3,rank()over(
partition by name order by year) rk from t) where rk=1;
********************************************************
****************************
精妙的 SQL 语句!
精妙 SQL 语句
作者:不详 发文时间:2003.05.29 10:55:05
说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 1<>1
说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from b;
说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,
(select max(adddate) adddate from table where
table.title=a.title) b
说明:外连接查询(表名 1:a 表名 2:b)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT
JOIN b ON a.a = b.c
说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f 开始
时间,getdate())>5
说明:两张关联表,删除主表中已经在副表中没有的信息
SQL:
delete from info where not exists ( select * from infobz
where info.infid=infobz.infid )
说明:--
SQL:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE,
'YYYY/MM')) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') ¦¦
'/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <>
X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM
说明:--
SQL:
select * from studentinfo where not exists(select * from
student where studentinfo.id=student.id) and 系名称
='"&strdepartmentname&"' and 专业名称
='"&strprofessionname&"' order by 性别,生源地,高考总成绩
说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来
源)
SQL:
SELECT a.userper, a.tel, a.standfee,
TO_CHAR(a.telfeedate, 'yyyy') AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01',
a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02',
a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03',
a.factration)) AS MAR,
剩余18页未读,继续阅读
WYT_2008088
- 粉丝: 0
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0