如何对Access数据库查询结果进行重新编号排序啊,自动编号的方式也行

以下是我的查询语句,pindex是主键,pindex可以不参与查询显示SELECTpindex,devname,chanel,devip,pdate,speed,plat... 以下是我的查询语句,pindex是主键,pindex可以不参与查询显示
SELECT pindex,devname,chanel,devip,pdate,speed,plate,ptype,pathname,direction FROM TPASSVEH
WHERE 1=1
我的意思是我要查询的数据是 pindex,devname,chanel,devip,pdate,speed,plate,ptype,pathname,direction
他的条件 WHERE 不仅是1=1 还有其他,比方说:
SELECT pindex,devname,chanel,devip,pdate,speed,plate,ptype,pathname,direction FROM TPASSVEH WHERE 1=1 AND speed>=45 AND speed<=60
我要在以上的查询结果中加入一个实现自动编号的列(可以假设这个列名称为AutoNum,查询结果可以不进行排序),因为下面要对这个AutoNum列(新加的自动编号列)的查询结果进行编辑,即我只通过 WHERE AutoNum=45 的条件就能显示出编号所对应的数据了
也就是说在内查询结果里新添加一个自动编号的列,外查询通过这个列来显示数据
展开
 我来答
badkano
推荐于2016-06-26 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885370
团长

向TA提问 私信TA
展开全部

需要用sql语句来处理。

比如原表数据如下:

现在要按出生日期从早到晚排列,并给出序号:

sql语句如下:

select t.* from
(select t1.*,(select count(*)+1 from 表2 as t2 where t2.出生日期<t1.出生日期) as 序号 from 表2 as t1) as t
order by 序号;

结果

haoma2514
推荐于2018-02-28 · TA获得超过383个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:193万
展开全部
编号就不要在数据库上操作了一个是影响性能,二个是操作复杂。 你在前台显示数据的时候直接循环一个变量编号就可以了。
这段TSQLL语句真的乱, 你是想要做什么? 是想做分页吗? 你这样做太复杂了。
SELECT * FROM (SELECT ROWNUM AS RNO,* FROM (" SELECT (" + pgSql + ") AS ROWNUM, devname, chanel, devip, pdate, speed, plate, ptype, pathname FROM ("+ pgSql +") ) WHERE ROWNUM <= " + rowMax + ") WHERE RNO > " + rowMin
又是最大编号,又是最小编号。 一下 SELECT (" + pgSql + ") 一下又FROM ("+ pgSql +") 这不是乱搞的吗? 分页用top就行了。 例如:
select top 2 * from tbl_user_reg where 1=1 and id not in (select top 6 id from tbl_user_reg where 1=1) 意思是相同查询条件下获取第7、8条记录,这样就是依据id来排除前6条然后获取7、8条,top2就是每页显示2条,排除了前面6条也就是2*3当前是第四页了。 你用变量代替2和6即可达到分页的目的。 但是这样做的话必须依赖一个唯一的id列,而且not in不适合大数据量!
那么换另一种方式:
select * from ( select top 2 * from (select top 8 * from tbl_user_reg order by id asc) as a order by id desc) as b order by id asc
先查询前八条,再把这八条倒过来取最后两条,再把这两条倒过来(不倒过来也没关系咯呵呵)! 自己斟酌一下吧!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kulianjian
2010-12-22 · 超过13用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:37.8万
展开全部
SELECT pindex,devname,chanel,devip,pdate,speed,plate,ptype,pathname,direction FROM TPASSVEH WHERE 1=1 order by pdate desc
order by pdate desc按时间倒序,order by pdate asc按时间正序,可以根据需要改变排序方式。将读取出来的数据存入一个数组中,这样就可以根据数据直接达到自动编号的效果,只是在输出的时候多了一步,不过操作起来比较简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
asatb17
2010-12-23 · TA获得超过155个赞
知道答主
回答量:281
采纳率:100%
帮助的人:206万
展开全部
select * from table名称 where 字段1 = xxx order by 字段2
大概就是这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式