Sql 如何在Oracle 11g中选择前五行或“N”行

Sql 如何在Oracle 11g中选择前五行或“N”行,sql,oracle,oracle11g,syntax-error,Sql,Oracle,Oracle11g,Syntax Error,我想从我的结果集中选择前五行。如果我使用上述查询,则会出现语法错误。限制子句在Oracle中不可用 看到您的查询,您似乎只对特定数量的行感兴趣,这些行不是基于特定列值排序的,因此您可以使用ROWNUM子句来限制返回的行数 select distinct ani_digit, ani_business_line from cta_tq_matrix_exp limit 5 如果要对结果集进行排序,然后限制行数,可以根据Colin在上述注释中提供的链接中的详细信息修改查询。在选择前5位之前,需要使

我想从我的结果集中选择前五行。如果我使用上述查询,则会出现语法错误。

限制子句在Oracle中不可用

看到您的查询,您似乎只对特定数量的行感兴趣,这些行不是基于特定列值排序的,因此您可以使用ROWNUM子句来限制返回的行数

select distinct ani_digit, ani_business_line from cta_tq_matrix_exp limit 5
如果要对结果集进行排序,然后限制行数,可以根据Colin在上述注释中提供的链接中的详细信息修改查询。

在选择前5位之前,需要使用DISTINCT:

select distinct ani_digit, ani_business_line from cta_tq_matrix_exp WHERE rownum <= 5

事实上我不想订购我的结果集。我只想要5行。@KarthikeyanSukkoor-所以你不在乎你得到哪5行?是的。我取两列中的任意一行,任何五行都是足够的。我做了这个查询。但是只得到结果集中的一行。若我使用诸如select distinct ani\U digit这样的查询,那个么cta\U tq\U matrix\U exp中的ani\U business\U line将得到三行结果。我觉得钥匙有问题,只是。。使用任意一个本地表,并获取两列的distinct值,然后查找前五行。如果得到3行distinct,则ROWNUM不能仅返回一行,或减少行数。否。我只是越来越像那样了。请从您的本地数据库中尝试一个示例。从12cR1开始,Oracle中提供了等效的LIMIT子句:谢谢。。这是一个常见的错误,oracle 11 g会根据rownum随机选择N,然后进行排序。从oracle 12 c开始,限制关键字可用。
SELECT * FROM 
(SELECT DISTINCT ani_digit, ani_business_line FROM cta_tq_matrix_exp) A
WHERE rownum <= 5
  select distinct ani_digit, ani_business_line from cta_tq_matrix_exp where rownum<=5;