相关疑难解决方法(0)

如何在SQL数据库表中选择第n行?

我有兴趣学习一些(理想情况下)数据库无关的方法来从数据库表中选择第n行.看看如何使用以下数据库的本机功能实现这一目标也很有趣:

  • SQL Server
  • MySQL的
  • PostgreSQL的
  • SQLite的
  • 神谕

我目前正在SQL Server 2005中执行类似下面的操作,但我有兴趣看到其他更不可知的方法:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Run Code Online (Sandbox Code Playgroud)

感谢上述SQL:Firoz Ansari的Weblog

更新:请参阅Troels Arvin关于SQL标准的答案.Troels,您有任何我们能引用的链接吗?

mysql sql database oracle postgresql

373
推荐指数
13
解决办法
72万
查看次数

如何在SQL中返回第二条最新记录?

如果这:

SELECT *
FROM Table
WHERE Date=( SELECT MAX(Date)
             FROM Table
           )
Run Code Online (Sandbox Code Playgroud)

从表中返回最新记录,如何获得第二个最新记录?

sql sql-server

16
推荐指数
2
解决办法
3万
查看次数

选择列中具有第二高值的行

假设我有一个类似于以下的表:

Item         Description            Time
-----        -----------            -----
ItemA1       descript               08-16-2013 00:00:00
ItemA2       descript               08-16-2013 00:00:00
ItemA3       descript               08-16-2013 00:00:00
.
.
ItemAN       descript               08-16-2013 00:00:00

ItemB1       descript               08-13-2013 00:00:00
ItemB2       descript               08-13-2013 00:00:00
ItemB3       descript               08-13-2013 00:00:00
.
.
ItemBN       descript               08-13-2013 00:00:00
.
.
.
ItemX1       descript               01-13-2012 00:00:00
ItemX2       descript               01-13-2012 00:00:00
ItemX3       descript               01-13-2012 00:00:00
.
.
ItemXN       descript               01-13-2012 00:00:00
Run Code Online (Sandbox Code Playgroud)

定期添加项目组.添加一组项目时,它们都添加了相同的"时间"字段."时间"基本上用作该项目组的唯一索引.

我想选择时间第二高的项目组.在此示例中,我的查询应该拉出"B"项.我知道我可以做max(time)来选择"A"项,但我不知道我会怎么做到最后.

我的"时间"列存储为TIMESTAMP,如果这意味着什么.

mysql sql database select

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

sql ×3

database ×2

mysql ×2

oracle ×1

postgresql ×1

select ×1

sql-server ×1