如何仅从SQL查询中选择第二个结果

时间:2018-04-25 12:18:16

标签: sql sql-server

我正在使用SQL Server。 我有一个SQL查询返回多行,我只需要从中选择第二个结果,或者第一个结果可能是。 我应该为这个要求写什么查询?

4 个答案:

答案 0 :(得分:2)

您可以使用 CREATE TABLE IF NOT EXISTS `people_copy` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `company_id` int(11) NOT NULL, `firstname` char(255) COLLATE utf8_unicode_ci NOT NULL, `lastname` char(255) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `mobile` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `birthdate` date DEFAULT NULL, `birthplace` char(255) COLLATE utf8_unicode_ci NOT NULL, `birth_country` char(255) COLLATE utf8_unicode_ci NOT NULL, `blocked_from` date DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=42095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; / offset

fetch

注意:

  • 除非您有select t.* from t order by col offset 1 fetch next 1 row only; ,否则SQL结果集会以不确定的顺序返回行。即使在同一系统上运行两次查询并按不同顺序返回行,也需要order by
  • 第一行的偏移量从0开始。对于第二行order by
  • offset 1 / offset是ANSI标准语法。

答案 1 :(得分:1)

SELECT * FROM TABLE ORDER BY COLUMN ASC LIMIT 1 首先发现

SELECT * FROM TABLE ORDER BY COLUMN DESC LIMIT 1 最后一行

答案 2 :(得分:1)

我们可以使用TOP子句 -

SELECT TOP (1) Col1 FROM (Your SQL Query) as XYZ Order By Col3 DESC

答案 3 :(得分:0)

你可以尝试

SELECT * FROM
(
   SELECT r.*, ROW_NUMBER() OVER (ORDER BY SomeField ASC) AS RowNum
) sorty
WHERE RowNum = 2