[sql查询]华为的一个面试题

GrayLag 2005-11-21 11:09:57
在华为面试,遇到下题。没做出来。特来求教
表名为comany,如下字段
id int
superid int
code varchar
supercode varchar
id,code是一个企业的编号和代码,superid和supercode是上级单位的编号和代码
现在表的id,code,supercode都已给值,用一个sql语句填充superid
...全文
317 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liusujian02 2006-07-03
  • 打赏
  • 举报
回复
mark
churchatp1 2005-11-21
  • 打赏
  • 举报
回复
当然可以啦
churchatp1 2005-11-21
  • 打赏
  • 举报
回复

update company set superid=b.id
from company,company b where company.supercode=b.code
GrayLag 2005-11-21
  • 打赏
  • 举报
回复
晕一个。update 语句里也可以出现from子句的吗
$扫地僧$ 2005-11-21
  • 打赏
  • 举报
回复
华为!
老是喜欢玩这种故弄玄虚的东西!!
$扫地僧$ 2005-11-21
  • 打赏
  • 举报
回复
create table comany
(
id int IDENTITY (1,1)NOT NULL,
superid int,
code varchar(10),
supercode varchar(10)
)

insert comany
select NUll,'A',NUll union
select NUll,'B','A' union
select NUll,'C','A' union
select NUll,'D','B' union
select NUll,'E','B' union
select NUll,'F','E'


update comany set superid=T.id from
(select id,Code from comany) T,comany
where T.Code=comany.supercode
churchatp1 2005-11-21
  • 打赏
  • 举报
回复
这样吗?
update company set superid=b.id
from company a,company,b where a.supercode=b.code
$扫地僧$ 2005-11-21
  • 打赏
  • 举报
回复
唯一的话!
这样吗!?

update comany set superid=T.id from
(select id,Code from comany) T,comany
where T.Code=comany.supercode
GrayLag 2005-11-21
  • 打赏
  • 举报
回复
给个示例数据

id superid code supercode
1 ? A null
2 ? B A
3 ? C A
4 ? D B
5 ? E B
6 ? F E
......

就是用一个sql语句,把上面的?改写为正确的值。
churchatp1 2005-11-21
  • 打赏
  • 举报
回复
如果你给定的supercode不是唯一的话比较难填吧
唯一的应该可以的
GrayLag 2005-11-21
  • 打赏
  • 举报
回复
解释一下。
那个面试的人这么说的
“现在有个企业关系表,字段是code,supercode,code是企业代码,supercode是上级企业代码。现在呢,给表加2个字段,就是id和superid,id是自增加的,superid呢现在还是null。根据code和supercode的关系,得出superid。比如一个企业id=1,code=A,supercode=B,那么它的superid就应该是code=B的那个企业的id”
xfwf 2005-11-21
  • 打赏
  • 举报
回复
具体写代码没时间,我讲一下我的思路:
首先,这个表中整形数据id和superid肯定是自增的,它不赋予任何业务属性,而code和supercode肯定是正好要赋予业务属性,他们的关系应该是 'xx'+id=code,'xx'+superid=supercode,类似的东西,也就是说code和supercode是企业的自编号,但自编号却利用id和superid来保证唯一性。又因为自编号命名规则肯定是一样的,所以这道题解如下:
1。首先分析出id 到code的字符串转换关系(比如是'xx'+id=code)。
2。根据转换出来的关系和已知的supercode,就很容易得到superid了。
lcooc 2005-11-21
  • 打赏
  • 举报
回复
是父子表结构的意思吗?
把数据写出来一些吧
$扫地僧$ 2005-11-21
  • 打赏
  • 举报
回复
可不可以试一试就知道了!!

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧