利用了一个简单的实例告诉你如何创建视图,11.2. 行列转换--合并
分类:热门资源

本作品一点也不细略的叙说了关于SQL制造视图 方法,利用了多个简便的实例告诉你怎样创制视图,有须求的敌人能够参谋着来做。

Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

--使用代码成立视图create view viewname --创制视图assql select statement

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

11.1. 行列转变--普通

例(1)

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

假使有张学生战表表(CJ卡塔尔(قطر‎如下

Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82

Name Subject Result

想造成 姓名 语文 数学 物理张三 80 90 85李四 85 92 82

张三 语文 80

代码如下复制代码

张三 数学 90

declare @sql varchar(4000)set @sql = 'create view [viewname] as 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 CJ group by name'select @sqlexec(@sql)

张三 物理 85

有关视图的此外操作

李四 语文 85

alter view viewname --修正视图assql select statement

李四 数学 92

drop view viewname --删除视图

李四 物理 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 a

select @sql = @sql+' from test group by name'

exec(@sql)

11.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)

as

begin

declare @str varchar(8000)

set @str=''

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:利用了一个简单的实例告诉你如何创建视图,11.2. 行列转换--合并

上一篇:封装常用Javascript以便PHP快速调用 下一篇:没有了
猜你喜欢
热门排行
精彩图文