如何从db2中提取特定行

时间:2014-12-03 07:23:39

标签: sql db2

我需要从DB2获取特定的行。

select istore,row_num() over() from store where row_num()=2;

所以这里我需要从商店表中获取第二行,但上面的查询并没有获取任何数据。请帮助我。

提前致谢

2 个答案:

答案 0 :(得分:0)

您没有明确指出您的问题究竟是什么,但您的陈述中有两个错误:

  1. 窗口函数名为row_number() not,row_num()
  2. 您不能在where子句中使用窗口函数。
  3. 使用row_number()而不使用任何order by没有任何意义,因为您最终会随机排序。

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

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

答案 1 :(得分:0)

您需要在

等外部查询中获取它
select * from
(
select istore, 
ROW_NUMBER() OVER (PARTITION BY some_column ORDER BY some_column) AS rn 
from store 
) tab
where rn = 2;