ASP查询按输入进行排序问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 11:14:04
sql= "select * from " & sbxh & " where VLAN in ("& nvlan &") "
("& nvlan &") 是一组输入的数字,如(100,200,500,59)
现在不排序的话,输出结果是按照VLAN字段从小到大的输出,如(59,100,200,500)
我想根据输入数组的顺序进行显示,如
输入(10,50,9,500,30)
不排序显示(9,10,30,50,500)
我想根据输入的顺序显示(10,50,9,500,30),不会写了,请大家多多指教.
测试过的
输入300,500,100
那么输出100,300,500

sql= "select * from " & sbxh & " where VLAN in ("& nvlan &") order by charindex(cast(VLAN as varchar),'"&nvlan&"') "
不行,把输入的值转为字符型返回排序,说ODBC 驱动程序不支持所需的属性。charindex改为instr,cast改为CONVER,varchar改为Short,'"&nvlan&"'改为"&nvlan&",也一样不行,ACCESS数据库数据类型为数字.
instrsql= "select * from " & sbxh & " where VLAN in ("& nvlan &") order by instr("&nvlan&")"
也不行,这样输出是从大到小,跟order by VLAN desc一样,

虽然不能解决,但分还是给你吧
最后我用导入的方法搞好了
把要查询的数据做成.txt,上传,导入数据库,根据导入数据库的数据去查询另一数据库,然后显示,再删除导入的数据,循环,循环

sql= "select * from " & sbxh & " where VLAN in ("& nvlan &") order by charindex(cast(VLAN as varchar),'"&nvlan&"') "

-------------------------
你是access就没办法了,我是在SQL SERVER 2000下测试通过的

排序方式是 根据 ORDER BY 来进行的,如果设置了,就按你设置的字段排序,如果没有设置 自动按 主键列排序的。

你的这个语句,根据数组查询的时候 (59,100,200,500) ,记录是不会进行排序的,只是对照,查询的记录是否在数组内包含,否则不显示。

排序的结果还是要按照 ORDER BY 的原则来输出的。