隨筆-16  評(píng)論-84  文章-1  trackbacks-0
          有這樣兩個(gè)表:
          table_a:

          id        name        val
          1          aaa          30
          2          aaa          40
          3          aaa          50
          1          bbb         35
          2          bbb         45
          3          bbb         55

          table_b:
          name        val1        val2        val3
          aaa            30          40          50
          bbb           35          45          55

          請(qǐng)用一個(gè)SQL語(yǔ)句實(shí)現(xiàn)table_a到table_b的轉(zhuǎn)化。


           1create table tb(id int, name varchar(10), val int)
           2insert into tb values(1 , 'aaa' , 30 )
           3insert into tb values(2 , 'aaa' , 40 )
           4insert into tb values(3 , 'aaa' , 50 )
           5insert into tb values(1 , 'bbb' , 35 )
           6insert into tb values(2 , 'bbb' , 45 )
           7insert into tb values(3 , 'bbb' , 55 )
           8go
           9
          10--sql 2000靜態(tài),指ID只有1,2,3
          11select name , 
          12       sum(case id when 1 then val else 0 end[val1],
          13       sum(case id when 2 then val else 0 end[val2],
          14       sum(case id when 3 then val else 0 end[val3]
          15from tb
          16group by name
          17/*
          18name       val1        val2        val3        
          19---------- ----------- ----------- ----------- 
          20aaa        30          40          50
          21bbb        35          45          55
          22
          23(所影響的行數(shù)為 2 行)
          24*/

          25
          26--sql 2000動(dòng)態(tài),指ID不確定
          27declare @sql varchar(8000)
          28set @sql = 'select name '
          29select @sql = @sql + ' , sum(case id when ''' + cast(id as varchar+ ''' then val else 0 end) [val' + cast(id as varchar+ ']'
          30from (select distinct id from tb) as a
          31set @sql = @sql + ' from tb group by name'
          32exec(@sql
          33/*
          34name       val1        val2        val3        
          35---------- ----------- ----------- ----------- 
          36aaa        30          40          50
          37bbb        35          45          55
          38*/

          39
          40
          41drop table tb
          42


          posted on 2009-08-17 10:14 absolute 閱讀(443) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): DataBase
          主站蜘蛛池模板: 平南县| 泰宁县| 兴和县| 东港市| 阿荣旗| 虹口区| 乐山市| 福贡县| 安吉县| 东宁县| 中牟县| 伊川县| 阿拉善左旗| 贺州市| 耒阳市| 铜陵市| 开化县| 江华| 卓尼县| 佛教| 伊吾县| 商丘市| 余庆县| 故城县| 武夷山市| 泰顺县| 陆丰市| 本溪市| 澜沧| 茶陵县| 靖边县| 安达市| 栾川县| 浏阳市| 焦作市| 日照市| 乐安县| 武汉市| 林甸县| 芜湖县| 普兰店市|