Функция OLAP на временной таблице? - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь выполнить запрос, подобный

    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').

Edit

Возвращает SQL0255] Код причины: 6 Функция OLAP не поддерживается.

Проблема в том, что я не могу использовать UPPER и row_number () вместе.Моя платформа - это DB2 ISeries V5R4.Можно ли как-нибудь выполнить функцию UPPER?

1 Ответ

0 голосов
/ 20 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...