Sql 如何从db2中提取特定行

Sql 如何从db2中提取特定行,sql,db2,Sql,Db2,我需要从DB2获取特定的行 select istore,row_num() over() from store where row_num()=2; 所以这里我需要从存储表中获取第二行,但上面的查询并没有获取任何数据。请帮助我 提前感谢您没有具体说明您的问题所在,但您的陈述中有两个错误: 窗口函数名为row\u number()not,row\u num() 不能在where子句中使用窗口函数 使用row\u number()而不使用任何order by是没有意义的,因为最终会出现随机排序 s

我需要从DB2获取特定的行

select istore,row_num() over() from store where row_num()=2;
所以这里我需要从存储表中获取第二行,但上面的查询并没有获取任何数据。请帮助我


提前感谢

您没有具体说明您的问题所在,但您的陈述中有两个错误:

  • 窗口函数名为
    row\u number()
    not,
    row\u num()
  • 不能在where子句中使用窗口函数
  • 使用
    row\u number()
    而不使用任何
    order by
    是没有意义的,因为最终会出现随机排序

    select *
    from (
       select istore,
              row_number() over (order by something) as rn
       from store
    ) t
    where rn = 2;
    

    用定义行顺序的列名替换
    something
    。没有任何排序,就没有“第二行”这样的东西。

    您需要在外部查询中获取它,如

    select * from
    (
    select istore, 
    ROW_NUMBER() OVER (PARTITION BY some_column ORDER BY some_column) AS rn 
    from store 
    ) tab
    where rn = 2;