这个问题已经在这里有了答案 :
使用Oracle分页 (6个答案)
6年前关闭。
请帮助我在Oracle数据库中编写一个SQL查询。有一个名为tbl的表,它有12行。我想先选择前4行,然后选择下4行和后4行。
任何人都可以告诉我如何在Informix中执行此操作。
您可以使用rownum
:
select * from (select t.*, rownum rn from tbl t) where rn between 1 and 4;
/
select * from (select t.*, rownum rn from tbl t) where rn between 5 and 8;
/
select * from (select t.*, rownum rn from tbl t) where rn between 9 and 12;
/
如果您正在使用order by
子句,请使用row_number()
(documentation)
select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 1 and 4;
/
select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 5 and 8;
/
select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 9 and 12;
/
问题内容: 我是Oracle的新手(虽然熟悉SQL),并且必须编写一个相当复杂的查询,其中多次使用了从当前日期得出的值。不必每次都计算值,而是为此声明一个常量似乎是显而易见的。 但是,当我随后尝试在后续的SELECT语句中使用DateIndex常量(我希望该常量基于“ DateIndex”返回值)时,解析器告诉我它正在执行SELECT INTO。 我所拥有的(简化为最低形式)是… 选择表时只能使用
//这是Jdbc代码 当我在Oracle sql developer中运行上面的查询时,它工作得很好,但是当我用上面的jdbc代码运行它时,它会抛出不是所有变量绑定的异常。如何在JDBC中运行上述查询
问题内容: 我一直在试图弄清楚为什么以下代码未在我的ResultSet中生成任何数据: 另一方面,以下各项可以正常运行: SCHOOL的数据类型为CHAR(9字节)。除了setString,我还尝试了: 我完全留意接下来要研究什么;Eclipse调试器说,即使在setString或setCharacterStream之后,SQL查询也不会更改。我不确定这是因为设置参数不起作用,还是调试器根本无法在
问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: MySQL中的ROW_NUMBER() 这可能吗?我想按特定的顺序获取一堆结果,然后通过其ID找出行的位置,例如: 我想按字母顺序获得1的位置,它将返回2 问题答案: 从这个答案>> ROW_NUMBER()在MySQL中修改
问题内容: 这个问题已经在这里有了答案 : 使用WHERE子句将数组传递给查询 (18个答案) 5年前关闭。 我在使用WHERE子句中的数组进行SQL查询时遇到问题。 例如: 我的阵列: 我的MySQL陈述: 有什么办法可以实现?我自己这样解决了它: 但是,如果我的数组中有成千上万个条目,那么SQL语句将太大且太慢,对吗? 谢谢 问题答案: 您可以使用mysql的IN函数 编辑:正如amosrev
我需要一种方法来收集在Oracle DB(Oracle数据库11g)中执行的所有查询在过去的几个小时内,无论查询有多快(这将用于计算sql覆盖率后,对我的应用程序运行测试,其中有几个点执行查询)。 我不能使用像V$SQL这样的表,因为不能保证查询会在那里保持足够长的时间。我似乎可以使用DBA_HIST_SQLTEXT,但是我没有找到过滤掉当前测试运行前执行的查询的方法。 所以我的问题是:我可以使用