当前位置: 首页 > 面试题库 >

仅SQL偏移量

咸昊昊
2023-03-14
问题内容

是否可以跳过X个第一行,并在一个查询中选择所有其他行?像那样:

abc
def
ghi
jkl
mno
========= start selecting all from here =========
pqr
stu
vwx
yz

它将选择:pqr,stu,vwx,yz

我尝试使用LIMIT和OFFSET完成此操作,但是问题是表是动态的,而且我不知道应该输入哪个LIMIT(我不知道表中有多少行)。


问题答案:

如果只需要最后N行,请尝试以下操作:

SELECT field1, field2 FROM table
ORDER BY some_column DESC
LIMIT N;

这会根据的顺序为您提供最后几条记录some_column

您可以使用自动递增的主键(希望有一个主键)来确定行的顺序(如果无法使用其他任何方法)。

相反,如果您想跳过前X行(在问题中指出),并获取所有行直到末尾,请尝试以下操作:

SELECT field1, field2 FROM table
ORDER BY some_column ASC
LIMIT 18446744073709551615 OFFSET X;

对于后一种情况,请参见:MySQL偏移无限行

但是,如果您 确实 有一个自动递增的主键,并且它与您要选择的行相对应,我建议:

SELECT field1, field2 FROM table
WHERE id > X;


 类似资料:
  • 问题内容: 此代码不起作用 我需要使用哪种SQLcode才能使这种代码 仅* 使用SQL 即可工作! * 注意 不起作用,因为我主要关注偏移量,而不是限制本身。 问题答案: 根据MySQL 5.5规范: 该子句可用于约束语句返回的行数。接受一个或两个数字参数,这些参数都必须是非负整数常量,但以下情况除外: 在准备好的语句中,可以使用 占位符标记指定参数。 在存储的程序中,可以使用整数值的例程参数或

  • 问题内容: SQL Server中有什么方法可以使结果从给定的偏移量开始?例如,在另一种类型的SQL数据库中,可以执行以下操作: 得到结果51-75。SQL Server中似乎不存在此构造。 如何在不加载我不关心的所有行的情况下完成此任务?谢谢! 问题答案: 我会避免使用。指定您实际上想要的列,即使可能是全部。 SQL Server 2005以上版本 SQL Server 2000 通过SQL S

  • 问题内容: 在SQL Server中,我需要找到给定的偏移量。 我已经研究了文档,并且有各种方法可以更改偏移量,但是没有一种方法可以了解特定值的偏移量(很抱歉,如果我错过了它)。 好吧,我想出了以下代码,尽管看起来似乎可行,但我觉得它太复杂了。 我仍然必须转换为+00:00格式,但想检查是否有更好的方法。 谢谢! 问题答案: datepart函数具有tz选项,它是时区偏移量(以分钟为单位)。

  • 问题内容: 我的数据库应用程序将部署在不同时区的多个站点上。 我需要一个T-SQL函数,该函数将确定YTD计算本年1月1日午夜的UTC时间戳。所有数据都存储在UTC时间戳中。 例如,芝加哥是具有夏令时(DST)的UTC-6,如果该功能在2008年的任何时间在芝加哥运行,则该函数需要返回“ 2008-01-01 06:00:00”。如果明年在纽约(GMT-5 + DST)运行,则需要返回“ 2009

  • 问题内容: 我有一个与此类似的表: 我想先更换2次出现的用用,然后4下出现,使生成的表如下所示: 当然,所讨论的表要大得多,因此出现的次数也会更多,因此手动编辑不是解决方案。 我想做这样的事情: 但是不幸的是,MySQL似乎在UPDATE查询中不支持OFFSET …有什么办法吗? 问题答案: 尝试这个: 然后

  • 问题内容: 我有一个遗留应用程序,我将需要补充一些数据。当前,我们有一个数据库表,用于存储美国(及其地区)邮政编码,GMT偏移量以及一个标志,用于显示该邮政编码是否使用夏时制。这是从某个免费提供商处下载的,我现在找不到源。 现在,我需要用每个邮政编码的完整奥尔森名称(例如)来补充此表,因为这似乎是将存储在数据库中的给定日期/时间(对于该购买者而言本地的)转换为对象的唯一好方法。 看一下桌子: 在另