标题:求一SQL语句-----怎么让同一个表中的一部分数据随机显示,另一部分按ID排序
只看楼主
bnbpop
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2007-5-24
得分:0 
回复:(阳光白雪)以下是引用lq7350684在2007-5-24 1...

是的,我要的好象只有视图可以实现。但是我的语句好象写错了。

2007-05-25 09:33
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 
以下是引用bnbpop在2007-5-25 9:33:58的发言:
是的,我要的好象只有视图可以实现。但是我的语句好象写错了。
你用的什么数据库?

专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2007-05-25 09:37
bnbpop
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2007-5-24
得分:0 
sql
以下是引用阳光白雪在2007-5-25 9:37:03的发言:
你用的什么数据库?

SQL数据库

2007-05-25 14:53
bnbpop
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2007-5-24
得分:0 
回复:(bnbpop)sql
高手赐教
2007-05-28 09:43
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 
[QUOTE]Dim Top5
Set Rs = Conn.Execute("Select top 5 * From [TableName] Order By newid()")
Do While Not Rs.Eof
Top5 = Top5 & Rs("Id") &","
Response.Write("....")
Rs.MoveNext
Loop
If Len(Top5) > 0 Then Top5 = Left(Top5,Len(Top5)-1)
Set Rs = Conn.Execute("Select * From [TableName] Where Id Not In("& Top5 &") Order By Id Asc")
Do While Not Rs.Eof
Response.Write("....")
Rs.MoveNext
Loop[/QUOTE]

专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2007-05-28 10:23
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
得分:0 
sql="(select top 5 id,字段1,字段2,字段3,cast(id as nvarchar(1500)) as p,1 as pp from [TableName]) UNION (select top 5 id,字段1,字段2,字段3,cast(newid() as nvarchar(1500)) as p,2 as pp from [TableName] where id in (select top 10 id from [TableName] order by id) and id not in (select top 5 id from [TableName] order by id)) order by pp,p"
rs.open sql,conn,1,1
……
2007-05-28 13:19
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
得分:0 
上面的语句测试过了
2007-05-28 13:28
bnbpop
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2007-5-24
得分:0 
回复:(islet)sql=
谢谢。我试一下
2007-05-29 10:04
bnbpop
Rank: 1
等 级:等待验证会员
帖 子:16
专家分:0
注 册:2007-5-24
得分:0 
如果我放 sql=""
运行出来变成没有数据
2007-05-29 14:10
enlangs
Rank: 1
等 级:等待验证会员
威 望:2
帖 子:218
专家分:0
注 册:2007-5-28
得分:0 
以下是引用阳光白雪在2007-5-28 10:23:25的发言:
Dim Top5
Set Rs = Conn.Execute("Select top 5 * From [TableName] Order By newid()")
Do While Not Rs.Eof
Top5 = Top5 & Rs("Id") &","
Response.Write("....")
Rs.MoveNext
Loop
If Len(Top5) > 0 Then Top5 = Left(Top5,Len(Top5)-1)
Set Rs = Conn.Execute("Select * From [TableName] Where Id Not In("& Top5 &") Order By Id Asc")
Do While Not Rs.Eof
Response.Write("....")
Rs.MoveNext
Loop

版主 你这里的top5应该只是一个值吧?

2007-05-29 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-142146-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066357 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved