Oracle,Mysql,SqlServe取出前10条记录

博客主要介绍了在Oracle、MySQL、SQL Server中获取前10条记录的方法,还提及在SQL Server中按排序取第5到10条记录的方式。同时探讨了“1=1”在SQL中的含义,以及desc和asc的排序意义,还给出了order by满足多条件的示例和实际项目中的按钮选择SQL语句方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Oracle中拿到前10条记录
 

select * from table1 where rownum<=10     --效率不高
select * from (select * from tb_user where rownum<=2*2) minus (select * from tb_user where rownum<=1*2)
select * from(select * from(select rownum no ,a.* from table1 a) where no>0) where rownum<=6;


rownum只能是小于,因为rownum是游标。必须把游标全读出来,才能通过no参数表示大于。

2.Mysql中拿到前10条记录

select * from table1 where 1=1 limit 10

3.Sql server中拿到前10条记录
读取前10条:

select top (10) * from table1 where 1=1


读取后10条:

select top (10) * from table1 order by id desc


在sqlserver里面,如何读取按照某个排序,第5到10这五个记录

select top 6 * from table where id not in(select top 4 id from table)

总结:我主要的疑惑是 “1=1”

仔细揣摩一下,在这里表示2种意思。
第一,当然它毫无疑问是一个恒等式,在这里有没有都没关系。不禁联想起sql注入的黑客手法。
第二,这里写个1=1,它的重点是想告诉我,这里可以写条件,比如:

格式:select * from 表名 where 列名=” ” limit 5,10
例子:select * from tb_email where toname= ‘caixiangyu’ limit 5,10
翻译:表示在tb_email表中的发送人为caixiangyu的所有数据从第5个开始取10条数据。

另外 desc是descend 降序意思 asc 是ascend 升序的意思
select top (10) * from table1 默认为asc,并且默认用主键排序
select top (10) * from table1 order by id desc为desc
想要加条件的话,即:
select top (10) * from table1 where shijian=” ” order by id desc

这时不禁想问,用”select * from table order by”显示时怎么让order by 后面同时满足两个条件?
答:select * from table order by shijina,paixu desc
在实际项目中,我建议大家做一个按钮:
select case orderby
case “shijian”
sql=”select * from my_table order by shijian desc ”
case “paixu”
sql=”select * from my_table order by paixu desc ”
case else
sql=”select * from my_table order by shijina,paixu desc”
end select

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉梦洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值