北方站长站
客服热线:0632-5117766

推荐;适合SQL初学者学习的SQL FAQ集锦 (1)

[2008-01-31 20:13:23] 作者:Northz.com 来源:北方站长网

Tags:集锦 学习 学者 适合 推荐 @str @sql id Subject from

  

1. 行列转换--普通

  

假设有张学生成绩表(CJ)如下:

Name  Subject   Result张三  语文    80张三  数学    90张三  物理    85李四  语文    85 李四  数学    92李四  物理    82  想变成姓名  语文  数学  物理张三  80   90   85李四  85   92   82

  

declare @sql varchar(4000)set @sql = 'select Name'select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'from (select distinct Subject from CJ) as aselect @sql = @sql+' from test group by name'exec(@sql)

2. 行列转换--合并

有表A, id pid 1   1 1   2 1   3 2   1 2   2 3   1如何化成表B: id pid  1  1,2,3  2  1,2  3  1

创建一个合并的函数

create function fmerg(@id int)returns varchar(8000)asbegindeclare @str varchar(8000)set @str='select @str=@str+','+cast(pid as varchar) from 表A where id=@idset @str=right(@str,len(@str)-1)return(@str)Endgo

--调用自定义函数得到结果

select distinct id,dbo.fmerg(id) from 表A

1 ZEF北方站长站

ZEF北方站长站

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

下一篇链接:细化解析:SQL Server2005查询计划指南 (1)

上一篇链接:细化解析:轻松掌握数据库的工作原理

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面