急,出了个问题。。。。解决问题就结了。。。

doveph 2005-03-17 02:48:17
rs.open "select * from Table where ID in ("&selectID&")",conn,1,1
用这种方式查询时,如何控制查询的顺序与selectID内排列的顺序一至?默认好像是按ID号大小
如selectID = "011, 005, 030, 010"
数据库默认的顺序是从小到大的???
...全文
106 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rober0371 2005-03-17
  • 打赏
  • 举报
回复
建议把数据查询出来存在数组里,然后通过冒泡法出新排列数组!
objRs.GetRows(-1)获得数组

重新排列(冒泡法)
for i=0 to ubound(MM)-1
for j=i+1 to ubound(MM)
if MM(I)>MM(J)then
tmp=MM(i)
MM(i)=MM(j)
MM(j)=tmp
end if
next
next
rober0371 2005-03-17
  • 打赏
  • 举报
回复
数组排序可以用冒泡法实现从小到大排列!
icewolf_li 2005-03-17
  • 打赏
  • 举报
回复
你可以把查询结果存在数组里,按照你的需要排好序再显示出来。
doveph 2005-03-17
  • 打赏
  • 举报
回复
那如果要实现这样的结果,有没有办法?
先把selectID = "011, 005, 030, 010"重新排下序,不知道能不能排序的?

还有一个 Num = "8, 6, 7, 2",能否也根据selectID 的顺序来排呢?也就是Num与selectID 顺序锁定了

结果是:
selectID = "005, 010, 011, 030"
Num = "6, 2, 8, 7"
doveph 2005-03-17
  • 打赏
  • 举报
回复
看来要在查询之前把数组进行排序才能解决问题了
baikaishui_0825 2005-03-17
  • 打赏
  • 举报
回复
写存储过程
但还是离不开循环
效率组好的办法是:
要是存储过程和临时表结合,应该可以解决
doveph 2005-03-17
  • 打赏
  • 举报
回复
就是呀,以前就是用那种循环,对数据库压力太大了,现在想用一个语句来完成,没办法了。。。
TSD 2005-03-17
  • 打赏
  • 举报
回复
一个SQL语句是无法实现这个的,像楼上的循环输出倒可以,不过数据多了,好像有点浪费资源!
baikaishui_0825 2005-03-17
  • 打赏
  • 举报
回复
id=split(selectID,",")
for i=0 to ubound(id)
rs.open "select * from Table where ID = ("&id(i)&")",conn,1,1
.....
rs.close
next
baikaishui_0825 2005-03-17
  • 打赏
  • 举报
回复

id=split(selectID,",")
for i=0 to ubound(id)
rs.open "select * from Table where ID in ("&id(i)&")",conn,1,1
.....
rs.close
next
fashchina 2005-03-17
  • 打赏
  • 举报
回复
up
goodstuday 2005-03-17
  • 打赏
  • 举报
回复
selectID若是没有规则,那就难了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧