Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->数据库应用 ->Mysql ->MySQL (C API)VC实例及代码下载
  相关分类: 
Access
DB2
Mysql
Oracle
PostgreSQL
SQL Server
Sybase
其他数据库
  站内搜索: 
热门文章排行
热门文章排行 Linux 安装 Mysql (04-22)
Heartbeat_2.0.3配置MySQL5.0.18集群(04-23)
Tomcat5配置MySQL JDBC数据库连接池(04-12)
Mysql日常备份和增量备份脚本(Linux)(04-23)
MySQL (C API)VC实例及代码下载 (04-23)
精采文章排行
精采文章排行 MySQL数据库中数据库移植中的乱码问(06-29)
Oracle是波音747还是MySQL丰田汽车呢(06-29)
意料外的MySQL运算符可获更多数据功(06-29)
轻松八句话 教会你完全搞定MySQL数据(06-29)
完全讲解PHP+MySQL的分页显示示例分(06-29)
  ·实战经验:PHP+MySQL数据库论坛简易通 ·新手入门:如何在MySQL数据库中定义外键 ·MySQL数据库中SELECT语句快速精细掌握 ·MySQL系统服务安装与卸载精彩问题汇总 ·完全优化MySQL数据库性能的八大巧方法 ·MySQL服务器内部安全数据目录如何访问 ·讲解MySQL服务器安装之后如何调节性能 ·如何利用Debugview方式来调试MySQL UDF ·MySQL ODBC进行MySQL和SQL Server转换

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

作者:Webmaster   来源:赛迪网技术社区    点击:   日期:2007-04-23 [收藏] [投稿]

  IE是否经常中毒?推荐您

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

select @max = @max -1

set rowcount @max

select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key

if @type=56

select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id

if @type=167

select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''

exec(@sql)

fetch cur_rows into @id,@max

end

close cur_rows

deallocate cur_rows

set rowcount 0

end

select * from systypes

select * from syscolumns where id = object_id('a_dist')

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 5 下一页

上一篇:实用心得:MySQL群集双机模拟方案   下一篇:MySQL验证的Quota磁盘限额安装手记
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·帮助你如何迅速优化你MySQL数据库性能

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。