如何在z / OS上的DB2 10中使用ROW_NUMBER?

时间:2015-05-14 00:18:13

标签: db2 row-number zos

我正在运行SQL查询并尝试将结果分解为块。

select task_id, owner_cnum
    from (select row_number() over(order by owner_cnum, task_id)
        as this_row, wdpt.vtasks.*
            from wdpt.vtasks)
                where this_row between 1 and 5;

SQL在Windows和Linux上与DB2 10.5一起使用,但在z / OS上的DB2 10.1上失败,并显示以下错误消息:

当我从连接到数据库的Windows机器上运行的IBM DataStudio 4.1.1运行SQL时,我得到了:

ILLEGAL SYMBOL "<EMPTY>". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: CORRELATION NAME. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60  

当我在连接数据库的zLinux系统上运行我的Java程序时,出现以下错误:

DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=<EMPTY>;CORRELATION NAME, DRIVER=3.65.97

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:3)

在某些DB2版本中,您必须使用相关名称进行子选择,如错误消息所示:

select FOO from (
  select FOO from BAR
) as T

这里&#34; T&#34;是相关名称。