注册 登录
编程论坛 ASP技术论坛

请问这种要求,SQL或程序语句怎么写

ncow 发布于 2008-07-10 23:21, 680 次点击
数据表格式为为:
序号,内容,字符长度
1      aaa     3
2     a        1
3     aasdf    5
……
……
很多数据,我要求的就是根据字符长度大小从小到大排序,10个为一段(共10段,即有100条记录),在每一段里随机抽出一个,取对应的序号,共10个合并字符串放在一个变量里(或数组里),最终得到共10个变量。
 
请问以上要求如何写程序啊
2 回复
#2
madpbpl2008-07-11 00:20
for i=1 to 10
num =10*i
sql="select id from [tb] where id in (select top 10 id from(select top "&num&" * from [tb]) order by 字符长度 asc) order by rnd(-1*序号 + time())"
set rs=Server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
a["&i&"]=rs("id") '得到每个变量
next
随手写的,没检查错误

不明白之处,共10段,每段取一个,这样才能取10个,合成一个变量
怎么可能取到10个变量 ----已经合成一个字符串了,没看明白
#3
ncow2008-07-11 21:45
[bo][un]madpbpl[/un] 在 2008-7-11 00:20 的发言:[/bo]

for i=1 to 10
num =10*i
sql="select id from [tb] where id in (select top 10 id from(select top "&num&" * from [tb]) order by 字符长度 asc) order by rnd(-1*序号 + time())"
set rs=Server.CreateObject ...



共10段,每段取一个,这样才能取10个,合成一个变量,
然后继续随机从那10段中每段取一个,但不能是之前取过的,又合成一个变量,继续这样共取10次就又10个变量了。
其实相当于:在100道题里随机抽10题,共分10组题,但10组题的长度要相当的。
1