MySQL (C API)VC实例及代码下载 (1)(4)

本文章很简单的讲述了关于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=”

发表评论

电子邮件地址不会被公开。 必填项已用*标注