临时表上的OLAP函数?

时间:2011-12-20 09:43:37

标签: sql db2

我正在尝试像

这样的查询
    select (*) 
    from (select row_number() over (order by a.id desc)SNo, 
                 a.id,
                 b.EmpName 
          from mySchema.table1 a
          INNER JOIN mySchema.table2 b on a.EmpCode=b.EmpCode 
          where UPPER(b.EmpName) LIKE 'AB%') z

只要我在临时表中使用'UPPER',这就不起作用了。我必须使用UPPER OLAP函数,因为我的表中的Emp名称不相同(有些是'ALice',有些是'boB')。

修改

  

返回SQL0255]原因码:6不支持OLAP功能。

问题是我不能同时使用UPPER和row_number()。我的平台是DB2 ISeries V5R4。 有没有我可以执行UPPER功能?

1 个答案:

答案 0 :(得分:0)

我认为最简单的答案是在子查询中进行UPPER选择,并在主查询中派生行号 - 如下所示:

select row_number() over (order by id desc)SNo, 
       z.*
from (select a.id,
             b.EmpName 
      from mySchema.table1 a
      INNER JOIN mySchema.table2 b on a.EmpCode=b.EmpCode 
      where UPPER(b.EmpName) LIKE 'AB%') z

- 假设DB2允许它。