java常见手写sql面试题_SQL常见面试问题

u|Uc©达内科技论坛--达内科技论坛^2;,sN原表:©达内科技论坛--达内科技论坛1(YJv©达内科技论坛--达内科技论坛aH@:id proid pronameEuSgO1 1 M©达内科技论坛--达内科技论坛8Jn1 2 F©达内科技论坛--达内科技论坛wM2 1 N©达内科技论坛--达内科技论坛;u2 2 G©达内科技论坛--达内科技论坛y3 1 B©达内科技论坛--达内科技论坛xC$ ow3 2 A©达内科技论坛--达内科技论坛0O查询后的表:!y(©达内科技论坛--达内科技论坛pid pro1 pro2cF01 M F©达内科技论坛--达内科技论坛:2 N G©达内科技论坛--达内科技论坛Wo3 B A©达内科技论坛--达内科技论坛ZPnMDT写出查询语句 -)|Q©达内科技论坛--达内科技论坛TCNk/又是一道面试题:D©达内科技论坛--达内科技论坛/,#0Yz原表:©达内科技论坛--达内科技论坛m'©达内科技论坛--达内科技论坛D5$F[id proid pronameTG/1 1 M©达内科技论坛--达内科技论坛R-1G1 2 F©达内科技论坛--达内科技论坛p72 1 N©达内科技论坛--达内科技论坛*whR2 2 G©达内科技论坛--达内科技论坛+S83 1 B©达内科技论坛--达内科技论坛8b.R3 2 A©达内科技论坛--达内科技论坛i[查询后的表:lK-}h©达内科技论坛--达内科技论坛AkPm%fid pro1 pro2Cv_1 M F©达内科技论坛--达内科技论坛wf2 N G©达内科技论坛--达内科技论坛#`R0^L3 B A©达内科技论坛--达内科技论坛pD写出查询语句 {fPQ#©达内科技论坛--达内科技论坛jy~o$P又是一道面试题:A7©达内科技论坛--达内科技论坛'原表:©达内科技论坛--达内科技论坛vj~O7W©达内科技论坛--达内科技论坛Gid proid pronameq1 1 M©达内科技论坛--达内科技论坛61 2 F©达内科技论坛--达内科技论坛aMVy:2 1 N©达内科技论坛--达内科技论坛l1$2 2 G©达内科技论坛--达内科技论坛n@$['3 1 B©达内科技论坛--达内科技论坛~x1%hQ3 2 A©达内科技论坛--达内科技论坛FP+查询后的表:(?P©达内科技论坛--达内科技论坛kid pro1 pro2Cq<=`1 M F©达内科技论坛--达内科技论坛M|L~!2 N G©达内科技论坛--达内科技论坛sPrrS=3 B A©达内科技论坛--达内科技论坛Gv&:Go写出查询语句 i©达内科技论坛--达内科技论坛r5o/Y又是一道面试题:o-Xcas©达内科技论坛--达内科技论坛2原表:A7D.n©达内科技论坛--达内科技论坛""3#+id proid proname]1 1 MC9$1 2 F<2 1 Nwwln/2 2 G}3 1 B>0{3 2 Ag0X?D8查询后的表:"O#D©达内科技论坛--达内科技论坛{ Hin)id pro1 pro2]4s1 M FX2 N G"w^8"3 B A^6F写出查询语句 OP©达内科技论坛--达内科技论坛+2U解决方案可有以下三种作参考:mkT©达内科技论坛--达内科技论坛>©达内科技论坛--达内科技论坛eJN1:使用pl/sql代码实现,但要求你组合后的长度不能超出oracle varchar2长度的限制。 `i+L下面是一个例子 "create or replace type strings_table is table of varchar2(20);,/©达内科技论坛--达内科技论坛mcreate or replace function merge (pv in strings_table) return varchar2FuzDis©达内科技论坛--达内科技论坛RPls varchar2(4000);^begin©达内科技论坛--达内科技论坛`Sm|for i in 1..pv.count loopf">ls := ls || pv(i);~~Dcoend loop;5}+|Rreturn ls;p}cend;Q/©达内科技论坛--达内科技论坛4LtI]!create table t (id number,name varchar2(10));@3;~P"insert into t values(1,'Joan');>aiUq&insert into t values(1,'Jack');nyqinsert into t values(1,'Tom');Z>0VKinsert into t values(2,'Rose'); insert into t values(2,'Jenny');'Gyf]©达内科技论坛--达内科技论坛?column names format a80;"'F0select 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;c~©达内科技论坛--达内科技论坛[?Tdrop type strings_table;"Rlpdrop function merge;9prmXdrop table t;9Zi)~;©达内科技论坛--达内科技论坛H©达内科技论坛--达内科技论坛^#p{2:用sql: LJV©达内科技论坛--达内科技论坛#t&3_;Well if you have a thoretical maximum, which I would assume you would given the legibility 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.bPHX+n©达内科技论坛--达内科技论坛cyThis example uses a max of 6, and would need more cut n pasting to do more than that.634b©达内科技论坛--达内科技论坛w[©达内科技论坛--达内科技论坛~y#d-SQL> select deptno, dname, empsY5jqb2 from (("iv3 select d.deptno, d.dname, rtrim(e.ename ||', '||91l34 lead(e.ename,1) over (partition by d.deptnoJg."5 order by e.ename) ||', '||,_yc6 lead(e.ename,2) over (partition by d.deptnoV$}7 order by e.ename) ||', '||'n$为了便于阅读,查询此表后的结果显式如下(及格分数为60):pk8courseid coursename score mark3---------------------------------------------------u1 java 70 pass5"2 oracle 90 pass"LC#3 xml 40 fail+{?4 jsp 30 failHb5 servlet 80 passey---------------------------------------------------vS3g写出此查询语句 Eh©达内科技论坛--达内科技论坛ZE^@©达内科技论坛--达内科技论坛BBF select courseid,coursename ,score ,decode(sign(score-61),-1,'fail','pass') as markhQ68ufrom course_v;@Kp!C©达内科技论坛--达内科技论坛]"|wCOURSEID COURSENAME SCORE MARKpu"GS.---------- ---------- ---------- ----U]1 java 70 passLB2 oracle 90 passa42|3 xml 40 failzvIh44 jsp 30 faile8#5 servlet 80 pass`[

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值