SQL语句(行列转换及字符串求和)
来源:优易学  2011-12-4 11:13:08   【优易学:中国教育考试门户网】   资料下载   IT书店
  create table tempAB(A varchar(10),B varchar(10))
  insert into tempAB values('a1','b1')
  insert into tempAB values('a2','b1')
  insert into tempAB values('a3','b1')
  insert into tempAB values('a4','b2')
  insert into tempAB values('a5','b2')
  insert into tempAB values('a6','b2')
  //新建一个表,以下代码可以返回B的值为b2,青年人网提示所有对应的A的值相加起来的结果
  首先就是把A列中符合条件的行转换为列,col+A的值为列名,
  再把各列相加
  declare @sql varchar(4000)
  set @sql = 'select '''''
  select @sql=@sql+'+table'+A+'.'+'col'+A
  from (select distinct A from tempAB where B='b2') as e
  select @sql=@sql+' from '
  select @sql=@sql+'(select a.'+'col'+A+' from(select (case A when '''+A+''' then A end) '+'col'+A+' '+
  'from tempAB) a inner join (select (case A when '''+A+''' then A end) '+'col'+A+' '+
  'from tempAB) b on a.col'+A+'=b.col'+A+') '+'table'+A+','
  from (select distinct A from tempAB where B='b2') as f
  select @sql=substring(@sql,0,len(@sql))
  print @sql
  exec(@sql)

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训