首页 新闻 会员 周边 捐助

怎么合并数据表中的数据项

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-24 22:23

我数据库中的表是这个样子

 

因为需要,我在展现数据的时候需要这样展现数据

就是把这些等级都合并到一个字段里面。我是用的是ASP.NET,我现在不知道该使用什么方法才可以达到这种效果。请大侠指教!

zhiqiang21的主页 zhiqiang21 | 初学一级 | 园豆:4
提问于:2012-08-23 05:10
< >
分享
最佳答案
1
SELECT  t1.typeID ,
        t1.typeName ,
        STUFF(( SELECT  ',' + t2.awardName
                FROM    table1 t2 ( NOLOCK )
                        INNER JOIN t1 ON t1.typeID = t2.typeID
              FOR
                XML PATH('')
              ), 1, 1, '') AS awardName
FROM    ( SELECT DISTINCT
                    typeID ,
                    typeName
          FROM      table1
        ) t1
收获园豆:10
田林九村 | 老鸟四级 |园豆:2367 | 2012-08-23 08:04
其他回答(4)
0

楼上写的很好了,  这是 group by 的写法

select typeId, typeName,

STUFF( (
                  SELECT
                  ',' + awardName AS 'text()'
                  FROM  targetTable t2
                  WHERE t2.typeId = t1.typeId
                  FOR XML PATH('')
               )
               ,1
               ,1
               ,''
             ) AS Awards
    
from targetTable t1 
group by typeId, typeName
收获园豆:5
gunsmoke | 园豆:3592 (老鸟四级) | 2012-08-23 08:13
0

查询两表的共同字段,然后用union all合并

拾梦小侠ด้้้ | 园豆:713 (小虾三级) | 2012-08-23 08:41
0

哈哈,我来个重点提示,合并前请先对原数所进行备份。、

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-23 10:28
0

1楼、2楼的查询会产生“三好学生1一等奖,二等奖,三等奖,优秀学生将”这样的数据。

看楼主的展示效果图片,优秀学生将并没有归并到奖项里面,

如果楼主仅仅是将 一等奖 、二等奖、三等奖合并,请参考下面语句:

SELECT MIN(ID), typeName, typeid, ( CASE WHEN awardName = '优秀学生将' THEN '优秀学生将'
                                          WHEN awardName = '一等奖'
                                               OR awardName = '二等奖'
                                               OR awardName = '三等奖' THEN '一等奖,二等奖,三等奖'
                                     END )
 FROM  targetTable 
GROUP BY typeName, typeid, ( CASE WHEN awardName = '优秀学生将' THEN '优秀学生将' WHEN awardName = '一等奖' OR awardName = '二等奖' OR awardName = '三等奖' THEN '一等奖,二等奖,三等奖' END )

楼主可以仔细学习下 SQL的case when ,for XML  ,Stuff ,group by 的语句作用.尝试自己写下

收获园豆:5
acepro | 园豆:1218 (小虾三级) | 2012-08-23 11:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册