Функция OLAP на временной таблице?

Я пытаюсь запрос как

    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 ответ

Я думаю, что самым простым ответом было бы сделать выбор 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 разрешит это.

Другие вопросы по тегам