论坛首页 招聘求职论坛

腾讯公司费解的sql面试题,都来看看,留下你的见解

浏览 46747 次
精华帖 (3) :: 良好帖 (10) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-07-11   最后修改:2009-07-17
今天去腾讯面试了,遇到这么一道sql方面的题,甚是费解
已知 小小+霸霸+王王=小霸王
小=?,霸=?,王=?
用sql求证
大家给点看法
分享分享!!!!


看了大家这么多答案
最后提醒大家一点
是用sql求证 这才是这道题目的重点
当然用别的方法也可以做出来,但我想这不是面试官所期望的答案吧
现在给出sql求证的答案
-------------------------------------------------------
已知 小小+霸霸+王王=小霸王
小=?,霸=?,王=?
用sql求证

declare @data int,@i int,@j int,@l int
set @data=100
while (@data<=999)
begin
   set @i=@data/100
   set @j=@data/10 % 10
   set @l=@data % 10
   if((@i+@j+@l)*11=@data)
   begin
      Select @data data,@i i,@j j,@l l
      break
   end
   set @data=@data+1
end;

分析:
II+JJ+LL=IJL

I*10+I +J*10+J+L*10+L   =   I*100+J*10+L
(I+J+L)*11
   发表时间:2009-07-11  
提示:
11,22,33,44,55,66,77,88,99
自连接 2次


0 请登录后投票
   发表时间:2009-07-11  
select t1.x, t2.x, t3.x from

(select 0 x from dual union select 1 x from dual union select 2 x from dual union select 3 x from dual union select 4 x from dual union select 5 x from dual union select 6 x from dual union select 7 x from dual union select 8 x from dual union select 9 x from dual) t1,

(select 0 x from dual union select 1 x from dual union select 2 x from dual union select 3 x from dual union select 4 x from dual union select 5 x from dual union select 6 x from dual union select 7 x from dual union select 8 x from dual union select 9 x from dual) t2,

(select 0 x from dual union select 1 x from dual union select 2 x from dual union select 3 x from dual union select 4 x from dual union select 5 x from dual union select 6 x from dual union select 7 x from dual union select 8 x from dual union select 9 x from dual) t3

where t1.x*10+t1.x+t2.x*10+t2.x+t3.x*10+t3.x=t1.x*100+t2.x*10+t3.x

语法也许有错误,逻辑上是这个意思,用穷举法解决问题

三个表,都各有0到9共计10个数字,10条记录
关联查询三个表,尝试1000种组合,where条件就是题目中要求的条件。符合条件的所有3个数字的组合会被select语句查询出来
0 请登录后投票
   发表时间:2009-07-12   最后修改:2009-07-12
真是个变态题

高手的给解一下
0 请登录后投票
   发表时间:2009-07-12   最后修改:2009-07-12
 create table n_table (n int)  -- n 为 0..9

select a.n, b.n, c.n
from n_table a, n_table b, n_table c
where 11 * (a.n + b.n + c.n) = a.n * 100 + b.n * 10 + c.n 

5 请登录后投票
   发表时间:2009-07-12  
题目很有意思,谢谢分享 
0 请登录后投票
   发表时间:2009-07-13  
icefishc 写道
 create table n_table (n int)  -- n 为 0..9

select a.n, b.n, c.n
from n_table a, n_table b, n_table c
where 11 * (a.n + b.n + c.n) = a.n * 100 + b.n * 10 + c.n 


大哥,你太猛了
0 请登录后投票
   发表时间:2009-07-13  
不明白这是什么问题  从来没遇过 - -
0 请登录后投票
   发表时间:2009-07-13  
呵呵,估计理解题目还得小半天时间!
0 请登录后投票
   发表时间:2009-07-13  
看不懂题意啊,不知道如何理解这道题的意图,高手解释下
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics