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

PHP
PHP程序员的优化调试技术和技巧
PHP实现简单线性回归之数学库的重要性
用PHP读取和编写XML DOM
PHP实现简单线性回归之数据研究工具
在PHP中开发XML应用程序之基础篇
PHP加密文本文件并限制特定页面的存取
PHP强制对象类型之instanceof操作符
通过PHP和Sajax使用Ajax之JavaScript
WAP与PHP程序设计之基础篇
PHP5 OOP编程之代理与定制异常
PHP5 OOP编程中的代理与异常定制
PHP+MySQL应用中使用XOR运算加密算法
使用PHP和AJAX的XML编程
利用PHP+JavaScript打造AJAX搜索窗
结合AJAX进行PHP开发之入门
结合AJAX的PHP开发之后退、前进和刷新
用PHP控制您的浏览器cache
五个常见 PHP 数据库问题
深入探讨PHP中的内存管理问题
用PHP构建一个简易监视引擎

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


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

4.查询数据的最大排序问题(只能用一条语句写)

CREATE TABLE hard (qu char (11) ,co char (11) ,je numeric(3, 0))

insert into hard values ('A','1',3)

insert into hard values ('A','2',4)

insert into hard values ('A','4',2)

insert into hard values ('A','6',9)

insert into hard values ('B','1',4)

insert into hard values ('B','2',5)

insert into hard values ('B','3',6)

insert into hard values ('C','3',4)

insert into hard values ('C','6',7)

insert into hard values ('C','2',3)

要求查询出来的结果如下:

qu co je

----------- ----------- -----

A 6 9

A 2 4

B 3 6

B 2 5

C 6 7

C 3 4

就是要按qu分组,每组中取je最大的前2位!!

而且只能用一句sql语句!!!

select * from hard a where je in (select top 2 je from hard b where a.qu=b.qu order by je)

5.求删除重复记录的sql语句?

怎样把具有相同字段的纪录删除,只留下一条。

例如,表test里有id,name字段

如果有name相同的记录 只留下一条,其余的删除。

name的内容不定,相同的记录数不定。

有没有这样的sql语句?

==============================

A:一个完整的解决方案:

1)、将重复的记录记入temp1表:

select [标志字段id],count(*) into temp1 from [表名]

group by [标志字段id]

having count(*)>1

2)、将不重复的记录记入temp1表:

insert temp1

select [标志字段id],count(*) from [表名]

group by [标志字段id]

having count(*)=1

3)、作一个包含所有不重复记录的表:

select * into temp2 from [表名]

where 标志字段id in(select 标志字段id from temp1)

4)、删除重复表:

delete [表名]

5)、恢复表:

insert [表名]

select * from temp2

6)、删除临时表:

drop table temp1

drop table temp2

================================

B:

create table a_dist(id int,name varchar(20))

insert into a_dist values(1,'abc')

insert into a_dist values(1,'abc')

insert into a_dist values(1,'abc')

insert into a_dist values(1,'abc')

exec up_distinct 'a_dist','id'

select * from a_dist

create procedure up_distinct(@t_name varchar(30),@f_key varchar(30))

--f_key表示是分組字段﹐即主鍵字段

as

begin

declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer

select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'

exec(@sql)

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin