2011-12-20 13 views
-1

私はこれがある限り、私は一時テーブルに「UPPER」を使用して動作しませんテンポラリテーブルの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 

のようなクエリをしようとしています。私のテーブルのEmp名は似ていないので、UPPER OLAP関数を使用する必要があります(いくつかの 'ALICE'、いくつかの 'boB')。

編集

これはSQL0255]理由コードを返し:サポートされていない6 OLAP機能。

問題は、UPPERとrow_number()を一緒に使用できないことです。私のプラットフォームはDB2 ISeries V5R4です。 UPPER関数を実行できますか?

+1

UPPERを使用すると、どのようにこのクエリは「機能しません」?それはエラーを返しますか?もしそうなら、どちらですか?それはデータを返しますが、間違って処理されますか?もしそうなら、どうですか?このシナリオで一時テーブルはどこにありますか? –

+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がそれを可能にすると仮定します。