如何对Access数据库查询结果进行重新编号排序啊,自动编号的方式也行
发布网友
发布时间:2023-01-04 12:10
我来回答
共4个回答
热心网友
时间:2023-10-13 07:11
需要用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 序号;
结果
热心网友
时间:2023-10-13 07:12
编号就不要在数据库上操作了一个是影响性能,二个是操作复杂。 你在前台显示数据的时候直接循环一个变量编号就可以了。
这段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
先查询前八条,再把这八条倒过来取最后两条,再把这两条倒过来(不倒过来也没关系咯呵呵)! 自己斟酌一下吧!
热心网友
时间:2023-10-13 07:12
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按时间正序,可以根据需要改变排序方式。将读取出来的数据存入一个数组中,这样就可以根据数据直接达到自动编号的效果,只是在输出的时候多了一步,不过操作起来比较简单。
热心网友
时间:2023-10-13 07:13
select * from table名称 where 字段1 = xxx order by 字段2
大概就是这样