当前位置: 首页 > 图文教程 > 网络编程 > PHP > MySQL (C API)VC实例及代码下载 (1)(4)

PHP
如何学习一个新的PHP框架
配置最新的PHP加MYSQL服务器
PHP原版HTML编码器溢出问题的解决
PHP-Javascript“返回上一页”无缓存问题
基于DB2及PHP的应用系统跨平台迁移详细步骤(一)
基于DB2及PHP的应用系统跨平台迁移详细步骤(二)
PHP Squid中可缓存的动态网页设计
PHP读取文件夹内有多少个文件
PHP Header用于页面跳转要注意的几个问题总结
一些使用频率比较高的PHP函数
PHP5.2下preg_replace函数的问题
PHP-Push技术实现刷新功能
PHP动态图像的创建
PHP中重新定向到另一个页面
在PHP中将图片存放ORACLE中
PHP开发大型Web应用浅析
PHP正则相关的几个preg函数
PHP开发中最常见的文件操作疑难解答
面向普通人加密 使用PHP应用程序保护数据
记录PHP网站开发几个好功能

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 164 ::
收藏到网摘: n/a

11.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 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=''

select @str=@str+','+cast(pid as varchar) from 表A where id=@id

set @str=right(@str,len(@str)-1)

return(@str)

End

go

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

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

11.3. 如何取得一个数据表的所有列名

方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。

SQL语句如下:

declare @objid int,@objname char(40)

set @objname = 'tablename'

select @objid = id from sysobjects where id = object_id(@objname)

select 'Column_name' = name from syscolumns where id = @objid order by colid

是不是太简单了? 呵呵 不过经常用啊。