SQL 查询里要限制返回行数,用法其实蛮多种的。SQLServer里的 SELECT TOP
算是用得比较多的,比如你只想看前 5 个学生数据,可以直接来一行:SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0
,写法挺直观,运行效率也不错。
DB2就稍微不一样了,它一般用 FETCH FIRST n ROWS ONLY
,虽然多打几个字,但结构也蛮清楚。比如:
SELECT SName, SAddress FROM Students WHERE SSex = 0 FETCH FIRST 5 ROWS ONLY;
如果你想取前百分之多少行,SQLServer 也能支持,用 TOP PERCENT
就行,比如取前 20%:
SELECT TOP 20 PERCENT SName, SAddress FROM Students WHERE SSex = 0;
不过注意哦,这种写法最好加个 ORDER BY
,不然返回的数据顺序会不稳定。你可以根据业务排序一下,比如:
SELECT TOP 10 PERCENT * FROM Orders ORDER BY OrderDate DESC;
顺便整理了几个挺实用的资源,有 SQLServer 和 DB2 的技巧、教程,还有个 SQL 查询语句集锦,平时可以翻翻:
- SqlServer 查询技巧限制返回行数的基础教程
- 数据库查询教程如何限制返回行数?
- DB2 性能优化:db2top 工具深度解析
- SQLServer 经典 SQL 查询语句集锦
- SQL 规范化 DB2 和 SQLSERVER 的分组查询技巧探讨
如果你平时同时用 DB2 和 SQLServer,建议把两边的语法区别整理一下,写查询的时候就不用每次去翻文档。