网络编程
位置:首页>> 网络编程>> 数据库>> 教你快速掌握一些方便易用的SQL语句(4)

教你快速掌握一些方便易用的SQL语句(4)

作者:36390 来源:赛迪网 发布时间:2008-11-28 15:21:00 

标签:

17、说明:随机取出10条数据

select top 10 * from tablename order by newid()
 
18、说明:随机选择记录

select newid()
 
19、说明:删除重复记录

Delete from tablename where id not in
(select max(id) from tablename group by col1,col2,...)
 
20、说明:列出数据库里所有的表名

select name from sysobjects where type='U'
 
21、说明:列出表里的所有的

select name from syscolumns where id=object_id('TableName')
 
22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

select type,sum(case vender when 'A' then pcs else 0 end),
sum(case vender when 'C' then pcs else 0 end),
sum(case vender when 'B' then pcs else 0 end)
FROM tablename group by type
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
 
23、说明:初始化表table1

TRUNCATE TABLE table1
 
24、说明:选择从10到15的记录

select top 5 * from (select top 15 * from table order by id asc)
table_别名 order by id desc 

随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)

对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:

Randomize
RNumber = Int(Rnd*499) +1
 
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 这里是执行脚本 ...
end if
objRec.MoveNext
Wend 

这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com