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

PHP
php代码优化及php相关问题总结
实现提高PHP效率的集中方法
PHP中删除目录的三种方法
PHP索引数组、多维数组以及相关数组
PHP网站开发遇到的中文编码
PHP动态生成switch-PHP的eval()的使用
php获得一个文件夹下所有文件的文件名
php生成outlook-php日历文件
php的register_shutdown_function函数详解
PHP脚本的8个技巧之一-Apache DSO
PHP使用mail函数发送邮件标题乱码问题
DISCUZ架构:AJAX之ajax.js 函数之一
DISCUZ架构:AJAX之ajax.js 函数之二
DISCUZ架构:AJAX之ajax.js 函数之三
你用用PHP获取前天和昨天日期
php语言中switch的用法介绍
PHP实例:FCKeditor 的配置和使用方法
PHP5.0对象模型探索之抽象方法和抽象类
php的content-type=text/html问题
PHP分析.wav文件并绘制png格式的波形图

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 139 ::
收藏到网摘: 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

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