SQL语句写法:如何一次性从百万条记录中找到希望的数据?

来源:百度知道 编辑:UC知道 时间:2024/05/28 03:44:47
数据库为ACCESS,表名为tables,结构和字段名如下:
字段1 字段2 字段3
zd1 zd2 texts
10000 20000 文字一
21000 30000 文字二
31000 40000 文字三
41000 50000 文字四
51000 60000 文字五
61000 70000 文字六
...
手头有如下数据需查询:A=23456,13567,67543...(无序数,但数据库中总有大于这些数的列)
请问:如何不用循环的方法一次性查出对应的“文字几”,并按数据A所对应的顺序列出?
(不用循环的方法,循环查询对于百万条数据中查找太耗资源了)
请高手不吝指教。谢谢。
a=23456,13567,67543...这是个数组。
一次性打开数据库,不用循环,但可进行下面查询:
21000 < 23456 < 30000 找出“文字二”
10000 < 13567 < 20000 找出“文字一”
31000 40000 文字三
41000 50000 文字四
51000 60000 文字五
61000 < 67543 <70000 找出“文字六”
并按23456,13567,67543的顺序批量列出“文字二”“文字一”“文字三”

求asp的sql语句。

可惜我也不会,只能帮顶。
楼主的意思应该是一次性从百万条数据库中(形式如下)
10000 20000 文字一
21000 30000 文字二
31000 40000 文字三
41000 50000 文字四
51000 60000 文字五
61000 70000 文字六
查询到大于或等于下面这个数组的单个数的记录啊:
23456,13567,67543...

感觉大家都理解错楼主的意思了。
楼主是不是指给出一个a=xxxx,xxxxx,xxx....在数据库中搜索出某个记录,符合条件zd1<a<zd2这个意思啊。

这种方法已经试过了,可以的
方法一,(zd2大于等于23456的按zd2升序第一条记录)
SELECT TOP 1 *
FROM tables
WHERE zd2 >= 23456
ORDER BY zd2

方法二,(zd1小于等于23456的按zd1降序第一条记录)
SELECT TOP 1 *
FROM tables
WHERE zd1 <= 23456
ORDER BY zd1 DESC

建议使用select in方法选出来后用runat=client方法在客户端生成排列顺序
可以~

首先在zd1和zd2上建立索引

Select [texts] from [tables] where (zd1<23456 and zd2>23456) or (zd1< 13567 and zd2>13567) or (zd1<67543 and zd2>67543) ......
上面这样只能在输出的时候按顺序对比排序
Select [texts] from [tables] where (zd1<23456 and zd2>23456)
union
Select [texts] from [tables] where (zd1<13567