ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:21.62KB ,
资源ID:5707289      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5707289.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Sql常见面试题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Sql常见面试题.docx

1、Sql常见面试题Sql常见面试题(总结)1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90A: select distinct name from table where name not in (select distinct name from table where fenshu=80)2.学生表 如下:自动编号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001

2、 数学 893 2005001 张三 0001 数学 69删除除了自动编号不同,其他都相同的学生冗余信息A: delete from 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

3、a, team b where a.name b.Debit101ccur*面试题:怎么把这样一个表儿yearmonth amount1991 1 1.11991 2 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果year m1m2m3m41991 1.1 1.2 1.3 1.41992 2.1 2.2 2.3 2.4 答案一、select year, (select amount fromaaa m where month=1and m.year=aaa.year) as m1,(select a

4、mount fromaaa m where month=2and m.year=aaa.year) as m2,(select amount fromaaa m where month=3and m.year=aaa.year) as m3,(select amount fromaaa m where month=4and m.year=aaa.year) as m4from aaagroup by year这个是ORACLE中做的:select * from (select name, year b1, lead(year) over(partition by name order by y

5、ear) 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 11 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,

6、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 da

7、tediff(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_DA

8、TE, 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.INBOUN

9、D_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:

10、 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, SUM(decode(TO_CHAR(a.telfeedat

11、e, mm), 04, a.factration) AS APR, SUM(decode(TO_CHAR(a.telfeedate, mm), 05, a.factration) AS MAY, SUM(decode(TO_CHAR(a.telfeedate, mm), 06, a.factration) AS JUE, SUM(decode(TO_CHAR(a.telfeedate, mm), 07, a.factration) AS JUL, SUM(decode(TO_CHAR(a.telfeedate, mm), 08, a.factration) AS AGU, SUM(decode

12、(TO_CHAR(a.telfeedate, mm), 09, a.factration) AS SEP, SUM(decode(TO_CHAR(a.telfeedate, mm), 10, a.factration) AS OCT, SUM(decode(TO_CHAR(a.telfeedate, mm), 11, a.factration) AS NOV, SUM(decode(TO_CHAR(a.telfeedate, mm), 12, a.factration) AS DEC FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate

13、, b.factration FROM TELFEESTAND a, TELFEE b WHERE a.tel = b.telfax) a GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, yyyy) 说明:四表联查问题: SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where . 说明:得到表中最小的未使用的ID号 SQL: SELECT (CASE WHEN

14、 EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)*有两个表A和B,均有key和value两个字段,如果B的key在A中也有,就把B的value换为A中对应的value这道题的SQL语句怎么写?update b set b.value=(select a.value from a where a.key=b

15、.key) where b.id in(select b.id from b,a where b.key=a.key);*高级sql面试题原表: courseid coursename score - 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 - 为了便于阅读,查询此表后的结果显式如下(及格分数为60): courseid coursename score mark - 1 java 70 pass 2 oracle 90 pass 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pass - 写

16、出此查询语句没有装,没试过 select courseid, coursename ,score ,decode(sign(score-60),-1,fail,pass) as mark from course完全正确 SQL desc course_v Name Null? Type - - - COURSEID NUMBER COURSENAME VARCHAR2(10) SCORE NUMBER SQL select * from course_v; COURSEID COURSENAME SCORE - - - 1 java 70 2 oracle 90 3 xml 40 4 jsp

17、30 5 servlet 80 SQL select courseid, coursename ,score ,decode(sign(score-60),-1,fail,pass) as mark from course_v; COURSEID COURSENAME SCORE MARK - - - - 1 java 70 pass 2 oracle 90 pass 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pass*原表: id proid proname 1 1 M 1 2 F 2 1 N 2 2 G 3 1 B 3 2 A 查询后的表: id p

18、ro1 pro2 1 M F 2 N G 3 B A 写出查询语句解决方案 sql求解 表a 列 a1 a2 记录 1 a 1 b 2 x 2 y 2 z 用select能选成以下结果吗? 1 ab 2 xyz 使用pl/sql代码实现,但要求你组合后的长度不能超出oracle varchar2长度的限制。 下面是一个例子 create or replace type strings_table is table of varchar2(20); / create or replace function merge (pv in strings_table) return varchar2 i

19、s ls varchar2(4000); begin for i in 1.pv.count loop ls := ls | pv(i); end loop; return ls; end; / create table t (id number,name varchar2(10); insert into t values(1,Joan); insert into t values(1,Jack); insert into t values(1,Tom); insert into t values(2,Rose); insert into t values(2,Jenny); column

20、names format a80; select t0.id,merge(cast(multiset(select name from t where t.id = t0.id) as strings_table) names from (select distinct id from t) t0; drop type strings_table; drop function merge; drop table t; 用sql: Well if you have a thoretical maximum, which I would assume you would given the leg

21、ibility of listing hundreds of employees in the way you describe then yes. But the SQL needs to use the LAG function for each employee, hence a hundred emps a hundred LAGs, so kind of bulky. This example uses a max of 6, and would need more cut n pasting to do more than that. SQL select deptno, dnam

22、e, emps 2 from ( 3 select d.deptno, d.dname, rtrim(e.ename |, | 4 lead(e.ename,1) over (partition by d.deptno 5 order by e.ename) |, | 6 lead(e.ename,2) over (partition by d.deptno 7 order by e.ename) |, | 8 lead(e.ename,3) over (partition by d.deptno 9 order by e.ename) |, | 10 lead(e.ename,4) over

23、 (partition by d.deptno 11 order by e.ename) |, | 12 lead(e.ename,5) over (partition by d.deptno 13 order by e.ename), ) emps, 14 row_number () over (partition by d.deptno 15 order by e.ename) x 16 from emp e, dept d 17 where d.deptno = e.deptno 18 ) 19 where x = 1 20 / DEPTNO DNAME EMPS - - - 10 AC

24、COUNTING CLARK, KING, MILLER 20 RESEARCH ADAMS, FORD, JONES, ROONEY, SCOTT, SMITH 30 SALES ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD also 先create function get_a2; create or replace function get_a2( tmp_a1 number) return varchar2 is Col_a2 varchar2(4000); begin Col_a2:=; for cur in (select a2 from un

25、ite_a where a1=tmp_a1) loop Col_a2=Col_a2|cur.a2; end loop; return Col_a2; end get_a2; select distinct a1 ,get_a2(a1) from unite_a 1 ABC 2 EFG 3 KMN*一个SQL 面试题 去年应聘一个职位未果,其间被考了一个看似简单的题,但我没有找到好的大案.不知各位大虾有无好的解法?题为:有两个表, t1, t2,Table t1:SELLER | NON_SELLER- -A BA CA DB AB CB DC AC BC DD AD BD CTable t2:SELLER | COUPON | BAL- - -A 9 100B 9 200C 9 300D 9 400A 9.5 100B 9.5 20A 10 80要求用SELECT 语句列出如下结果:-如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和.且用的方法不要增加数据库负担,如用临时表等.NON-SELLER| COUPON | SUM(BAL) - -A 9 900B 9 800C 9 700D 9 600 A 9.5 20B 9.5 100C 9.5 120D 9.5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1