这个是oracle的写法,
如果查询的表中没有重复记录:
select a from 表 a where rownum<=(select max(rownum) from 表)-4
minus
select a from 表 a where rownum<=(select max(rownum) from 表)-10
如果查询的表中有重复记录:
select a表字段 from
(select a,rownum from 表 a where rownum<=(select max(rownum) from 表)-4
minus
select a,rownum from 表 a where rownum<=(select max(rownum) from 表)-10) a
SELECT FROM (
select t ,row_number() OVER(ORDER BY NAME) row_ from TEST t
) a
WHERE arow_=2
order by 可以按照任何一个字段进行排序,rowid可以表示数据入库的先后顺序进行查询
哎……这其实和你上次问的差不多……
SELECT id, name FROM mytable
改成
SELECT id, name FROM mytable where 1 order by COLUMN asc limit N1,N2
COLUMN是你要排序的栏,比如id
asc 是ascend 升序的意思,如果你要降序排列就用DESC 是descend 降序意思
limit N1,N2的意思是取第N1个开始的N2个数据
建议你去自学下mysql的基本语法知识
不然这么写会很累的
declare @i int,@j int,@str varchar(20)
set @str='abc-def-h'
set @i=1
set @j=len(@str)
declare @num int
while @i<@j
begin
set @num=charindex('-',@str,@i)
set @i=@i+1
set @i=@num+1
select @num
end
做是可以做出来的,只要结果的话好说:
Oracle数据库下:
select from(select rownum rownumNO,笔试成绩,机试成绩,其他信息 from stuMarks) where rownumNO=(select count() from stuMarks)-2
这个的话就是查出来倒数第三的成绩了,注意最后一个是-2。如果你要优化的话,或者有其他需求的话给我留言,OK?
mysql经常会用来查询特定字段,偶尔会需要展示特定字段中值的某部分,然后还有模糊查询的时候,如果需要匹配中间的某部分值,这个时候like就很尴尬,会多出一些不相干的记录
一、获取特定的几位:
1、取url字段后三位字符
select SUBSTRING(url, -3) from link;
#这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select RIGHT(`url`,length(`url`)-5) from link;
2、从左开始第3位取(包括第三位)
select SUBSTRING(url, 3) from link;
3、取左边的3位
select SUBSTRING(url, 1, 3) from link;
#这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select LEFT(`url`,length(`url`)-5) from link;
4、中间截取(从第1位开始取7位,如sDate字段值是 2013-06-07)
select SUBSTRING(sDate, 1,7) from forumdata;
查询结果就是 2013-06
二、查询特定的几位:
1、正常的模糊查询
select from cm_order where ordersn like '%31%';
2、一个字段共有13位,查询倒数四五位为31的
select from cm_order where SUBSTRING(ordersn, 9,2) = 31;
SELECT from cm_order where RIGHT(`ordersn`,length(`ordersn`)-8) like '31%';
这种如果正常的模糊查询会出来很多不相干的数据,但是这种只能针对定长的模糊查询,效率方面比正常的模糊查询好很多。
--可以才用left和right函数结合,,前提是stuid是字符类型,如果不是,请先将学号转化为字符类型
select stuid,stuname,sexcode,classid,specialityidfrom g_stuinfo
left join g_sexinfo on g_stuinfosexcode=g_sexinfosexcode
left join g_specialityinfo on g_specialityinfospecialityid=g_stuinfospecial
where specialityname='电子商务' and sexcode='1'
and left(right(g_stuinfostuid,2),1)='3'
以上就是关于如何查询数据库表中 倒数第5-10行记录全部的内容,包括:如何查询数据库表中 倒数第5-10行记录、oracle数据库某一张表中,在未知数据行数的时候,并且没有序列的情况下如何查询倒数第二条的数据信息。。、如何读取Mysql 倒数第几条的记录麻烦大家解答一下,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)