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

PHP
Web开发人员编程模型:隔离级别
采用.htaccess设置网站的压缩与缓存
PHP教程:PHP编程中的变量生存周期
PHP教程:isset() , unnset(), empty()
国外优秀的PHP开源网站内容管理系统
PHP 页面跳转到另一个页面的多种方法方法总结
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
php foreach、while性能比较
关于Appserv无法打开localhost问题的解决方法
php 魔术方法使用说明
php实现mysql同步的实现方法
php 3行代码的分页算法(求起始页和结束页)
PHP字符串 ==比较运算符的副作用
Wordpress php 分页代码
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
php self,$this,const,static,->的使用
PHP教程 基本语法
PHP教程 变量定义
PHP 处理图片的类实现代码
PHP教程 预定义变量

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


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

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