Rut*_*ani 46
如果指定要定位的数据库,将会很有帮助.不同的数据库有不同的语法和技术来实现这一点:
例如在Oracle中,您可以通过将条件置于RowNum(select ... from ... where ... rownum < 11- >将导致输出前10条记录)来解决此问题
在MySQL你可以使用你可以使用limit条款.
Microsoft SQL Server => SELECT TOP 10 column FROM table
PostgreSQL和MySQL => SELECT column FROM table LIMIT 10
Oracle => select * from (SELECT column FROM table ) WHERE ROWNUM <= 10(感谢stili)
Sybase => SET rowcount 10 SELECT column FROM table
Firebird => SELECT FIRST 10 column FROM table
注意:现代ORM工具(如Hibernate)提供高级API(查询,限制,条件接口),根据您选择的方言抽象前n行的逻辑.
小智 12
对于Oracle,建议和接受的解决方案是错误的.尝试使用订单子句,结果将是不可预测的.SQL需要嵌套才能在Oracle中完成此任务.
select name, price
from (
select name, price, row_number() over (order by price) r
from items
)
where r between 1 and 5;
Run Code Online (Sandbox Code Playgroud)
上面的示例来自http://www.adp-gmbh.ch/ora/sql/examples/first_rows.html,该讨论对此主题进行了很好的讨论.
我知道它与MySQL,但我不知道它是否是标准的SQL:以"limit X"结束查询,X = n.你想要的线条.
示例:
SELECT NAME FROM EMPLOYEES ORDER BY SALARY DESC LIMIT 10;
| 归档时间: |
|
| 查看次数: |
85499 次 |
| 最近记录: |