|
|
1
294
在标准的可选部分中有一些方法可以做到这一点,但很多数据库都支持自己的方法。 一个谈论这个和其他事情的好网站是 http://troels.arvin.dk/db/rdbms/#select-limit . PostgreSQL和MySQL基本上支持非标准:
Oracle、DB2和MSSQL支持标准窗口功能:
(我只是从上面链接的网站上复制的,因为我从未使用过这些数据库) 更新: PostgreSQL 8.4支持标准窗口函数,因此第二个示例也适用于PostgreSQL。 更新: SQLite在2018年9月15日的3.25.0版本中添加了窗口函数支持,因此这两种形式也适用于SQLite。 |
|
2
85
PostgreSQL支持
windowing functions
正如SQL标准所定义的,但它们很笨拙,所以大多数人使用(非标准)
此示例选择第21行。
|
|
|
3
26
其余的我都不确定,但我知道SQLite和MySQL没有任何“默认”的行顺序。至少在这两种方言中,以下代码段从_table中抓取了第15个条目,按添加日期/时间排序:
(当然,您需要添加一个DATETIME字段,并将其设置为添加条目的日期/时间…) |
|
4
19
SQL 2005及更高版本内置了此功能。请使用ROW_NUMBER()函数。它非常适合具有<<上一页和下一页>>样式浏览: 语法:
|
|
|
5
16
我怀疑这是非常低效的,但这是一种非常简单的方法,它适用于我尝试过的一个小数据集。
这将得到第五个项目,将第二个顶部数字更改为不同的第n个项目 仅限SQL服务器(我认为),但应该适用于不支持ROW_NUMBER()的旧版本。 |
|
|
6
12
在SQL Server上验证它:
这将为你提供第10行emp桌! |
|
|
7
11
与一些答案所声称的相反,SQL标准并没有对这个问题保持沉默。 自SQL:2003以来,您可以使用“窗口函数”跳过行并限制结果集。
在SQL:2008中,添加了一种稍微简单的方法,使用
就我个人而言,我不认为真的需要添加SQL:2008,所以如果我是ISO,我会把它排除在已经相当大的标准之外。 |
|
|
8
9
1个小变化:n-1代替n。
|
|
9
6
从顶部选择第n条记录
从底部选择第n条记录
|
|
|
10
6
当我们使用MSSQL 2000时,我们做了所谓的“三重翻转”: 编辑
它不优雅,也不快,但它奏效了。 |
|
|
11
6
这是一个快速解决你困惑的方法。
在这里,您可以通过填充N=0得到最后一行,通过N=1得到倒数第二行,通过填充N=3得到倒数第四行,以此类推。 这是面试中非常常见的问题,这很简单。 此外,如果你想要金额、ID或一些数字排序顺序,你可以在MySQL中使用CAST函数。
在这里,通过填写N=4,您将能够从CART表中获得最高金额的倒数第五条记录。您可以调整字段和表名并提出解决方案。 |
|
|
12
4
在Oracle 12c中,您可以使用
例如,要获取从顶部开始的第三条记录:
|
|
|
13
2
神谕:
|
|
|
14
2
添加:
这将把结果限制为从结果n开始的一个结果。 |
|
|
15
2
例如,如果你想选择MSSQL中的每10行,你可以使用;
拿着MOD,把数字10换成你想要的任何数字。 |
|
|
16
2
对于SQL Server,按行号进行操作的通用方法如下:
例如:
这将返回第20行的信息。之后一定要输入行数0。 |
|
|
17
2
这是我最近为Oracle编写的一个支持动态分页/排序的sproc的通用版本-HTH
|
|
|
18
1
但事实上,这一切难道不是一开始就只是良好数据库设计的客厅技巧吗?我很少需要这样的功能,那是为了一个简单的一次性查询来快速生成报告。对于任何真正的工作,使用这样的技巧都会招致麻烦。如果需要选择特定的行,那么只需有一个具有顺序值的列即可。 |
|
|
19
1
没有什么花哨的,没有特殊的功能,以防你像我一样使用Cach。。。
假设您有一个可以信任的ID列或日期戳列。 |
|
|
20
1
对于SQL server,下面将返回给定表的第一行。
你可以这样循环这些值:
|
|
|
21
1
LIMIT n,1在MS SQL Server中不起作用。我认为这是唯一一个不支持这种语法的主要数据库。公平地说,它不是SQL标准的一部分,尽管它得到了如此广泛的支持,以至于它应该得到支持。除了SQL server LIMIT之外,它在所有方面都工作得很好。对于SQL server,我还没有找到一个优雅的解决方案。 |
|
22
1
在Sybase SQL Anywhere中:
不要忘记订单,否则它毫无意义。 |
|
|
23
1
T-SQL-从表中选择第N个记录号
例如,要从表Employee中选择第5条记录,您的查询应该是
|
|
24
0
我写这个查询是为了找到第N行。 此查询的示例如下
|
|
|
25
0
我来这里参加聚会有点晚了,但我这样做不需要开窗或使用
它似乎运行得相当快,尽管公平地说,我只有大约500行数据 这在MSSQL中有效 |
|
|
26
0
|
|
|
27
0
要在SQL表的特定范围内选择第n行到第m行,可以使用
更换
例如,如果要从表中选择第3到第7行,可以替换
请确保在支持SQL的数据库管理系统或工具中执行此SQL查询。 |
|
|
28
0
令人难以置信的是,你能找到一个执行这个的SQL引擎。..
|
|
|
29
0
首先按升序排列选择前100行,然后按降序排列选择最后一行,限制为1。然而,这是一个非常昂贵的声明,因为它访问数据两次。 |
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |