首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

怎么得到这样的结果

2012-12-17 
如何得到这样的结果有一个表结构和数据如下:CODENAME--------------- ----------------------------------

如何得到这样的结果
有一个表结构和数据如下:
CODE            NAME
--------------- ----------------------------------------
209             城市与环境学院
209100          2007级
209101          2008级
209102          2009级
209103          2010级
209104          2011级
209105          2012级

想得到下面的结果,应该怎么办
CODE            NAME FullName
--------------- ---------------------------------------- ----------------------------------------------------
209             城市与环境学院 城市与环境学院
209100          2007级 城市与环境学院,2007级
209101          2008级 城市与环境学院,2008级
209102          2009级 城市与环境学院,2009级
209103          2010级 城市与环境学院,2010级
209104          2011级 城市与环境学院,2011级
209105          2012级 城市与环境学院,2012级
[最优解释]
什么数据库?假设MYSQL
SELECT CODE,NAME,NAME WHERE LENGTH(CODE)=3
UNION ALL
SELECT CODE,NAME,concat((SELECT CODE,NAME,NAME WHERE LENGTH(CODE)=3),',',name)

sqlserver

SELECT CODE,NAME,NAME WHERE LENGTH(CODE)=3
UNION ALL
SELECT CODE,NAME,((SELECT CODE,NAME,NAME WHERE LENGTH(CODE)=3)+','+name)
[其他解释]

SELECT CODE,NAME,NAME from tt WHERE LENGTH(CODE)=3
UNION ALL
select * from (
SELECT CODE,NAME,((SELECT CODE,NAME,NAME WHERE LENGTH(CODE)=3) 
[其他解释]
我的本意是这样的,这个表包含两个字段
Code varchar2(15)
Name varchar2(40)

Code是部门代码,每一级部门是3位长,所以Code最多可以表示5级部门,Code的值是如下形式的:
100
100100
100100100
100100100100
100100100100100
100101
100101100
100101100101
100101100101100

Name是当前这级部门的名称
我现在要要得到的是某个部门的完整的名称,即把他的上级部门名称拼到前面。表内容如下:
Code             Name
100              一
100100           二
100100100        三
100100100100     四
100100100100100  五

我要得到的结果是:
Code             Name  完整名称
100              一     一
100100           二     一二
100100100        三     一二三
100100100100     四     一二三四
100100100100100  五     一二三四五



[其他解释]
打开游标循环取值,判断、累加
[其他解释]
是oracle数据库
[其他解释]
 ',' 
[其他解释]
 name) 
from tt WHERE LENGTH(CODE)>3) aa

[其他解释]
或者说给出这个表中的任意一个部门代码,怎么获得这个部门的完整名称

热点排行