今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验

这样的SQL语句怎么写?


有一个表A: adminNo, semId, subjectCode
可能的数据为: 1,1,S1
        1,1,S2
        1,2,S3
        1,3,S4
        2,1,S1
同一个SemId最多只有2个SubjectCode。现在我想查寻结果,使得同一adminNo,同一SemId的SubjectCode合并起来,如下:
        adminNo, SemId, SubjectCodes 
        1,1,S1 S2
        1,2,S3
        1,3,S4
        2,1,S1
请问该怎么实现?



答案或建议:


如果是MSSQl环境下,
我所知没有合适的聚合函数来合并你所说的字符串栏位.所以一般要靠设计一个中间函数的办法来做,或者是用临时表的办法.
但你说你最多是有两个重复.
我就有一个取巧的办法.
代码
select adminno,semid,(select top 1 (SubjectCode) from tabName as s1 where s1.adminno=s2.adminno and s1.semid=s2.semid order by SubjectCode) as SubName1 ,
(select top 1 (SubjectCode) from tabName as s1 where s1.adminno=s2.adminno and s1.semid=s2.semid order by SubjectCode desc) as SubName2
from tabName  as s2
这样,你就可以得到SubName1和SubName2,这两个可能是一样的(只有一个数据),也可能是不一样的,你可以再根据这个比较值,最终再生成一个结果列.

文章来源链接:http://www.baikewenda.com/tech/dev/8/6/a212814134.htm
推荐内容

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号