本人在数据库编程中遇到一个似乎非常小的问题(关于SQL,JET).
有一个数据库表(企业),名为ETable,
有两个字符型字段:EName,Etype
分别表示企业名称和企业经济类型.
企业名称有无数个(且唯一);
企业类型不唯一,但数量有限.例如:集体,私有,国有,外资,民营...等.
每个企业有且只有一个经济类型.
现在要得到如下格式的查询输出结果:
企业类型| 集体 | 私有 | 国有 | 外资 | 民营 |...
--------------------------------------------
公司1
公司2
公司3
公司4
公司5
公司6
公司7
...
...
请问:如何生成SQL查询语句?
我用Trans语句失败.
本人手边几十本资料均未记载有关方法.上了若干网站,均无解答.请高手将答案Email到我本人机器:newthoughts@pub.yc.jsinfo.net
本人将有答谢 !
7 个解决方案
#1
用临时表和光标!在Server端解决.
#2
如果etype是有限的:
select '企业类型',
decode(etype,'集体',ename,'') 集体,
decode(etype,'私有',ename,'') 私有,
decode(etype,'国有',ename,'') 国有,
decode(etype,'外资',ename,'') 外资,
decode(etype,'民营',ename,'') 民营
from etable;
select '企业类型',
decode(etype,'集体',ename,'') 集体,
decode(etype,'私有',ename,'') 私有,
decode(etype,'国有',ename,'') 国有,
decode(etype,'外资',ename,'') 外资,
decode(etype,'民营',ename,'') 民营
from etable;
#3
37105关注! :)
#4
是想在数据库中生成这样一个表呢?还是想在客户端表现出来呢?
#5
弱水大哥都出手了,看来我就歇着吧,:)
#6
select (case when etype='集体' then ename else '' end) as 集体,(case when etype='私有' then ename else '' end) as 私有,
(case when etype='國有' then ename else '' end) as 國有,(case when etype='外資' then ename else '' end ) as 外資,
(case when etype=' 民營' then ename else '' end ) as 民營 from ETable
反正企业类型数量有限。
(case when etype='國有' then ename else '' end) as 國有,(case when etype='外資' then ename else '' end ) as 外資,
(case when etype=' 民營' then ename else '' end ) as 民營 from ETable
反正企业类型数量有限。
#7
建立游标,用一个存贮过程在服务器中执行可以的。
#1
用临时表和光标!在Server端解决.
#2
如果etype是有限的:
select '企业类型',
decode(etype,'集体',ename,'') 集体,
decode(etype,'私有',ename,'') 私有,
decode(etype,'国有',ename,'') 国有,
decode(etype,'外资',ename,'') 外资,
decode(etype,'民营',ename,'') 民营
from etable;
select '企业类型',
decode(etype,'集体',ename,'') 集体,
decode(etype,'私有',ename,'') 私有,
decode(etype,'国有',ename,'') 国有,
decode(etype,'外资',ename,'') 外资,
decode(etype,'民营',ename,'') 民营
from etable;
#3
37105关注! :)
#4
是想在数据库中生成这样一个表呢?还是想在客户端表现出来呢?
#5
弱水大哥都出手了,看来我就歇着吧,:)
#6
select (case when etype='集体' then ename else '' end) as 集体,(case when etype='私有' then ename else '' end) as 私有,
(case when etype='國有' then ename else '' end) as 國有,(case when etype='外資' then ename else '' end ) as 外資,
(case when etype=' 民營' then ename else '' end ) as 民營 from ETable
反正企业类型数量有限。
(case when etype='國有' then ename else '' end) as 國有,(case when etype='外資' then ename else '' end ) as 外資,
(case when etype=' 民營' then ename else '' end ) as 民營 from ETable
反正企业类型数量有限。
#7
建立游标,用一个存贮过程在服务器中执行可以的。