1

レポートのprog./sqlコンストラクトを作成するためにいくつかのヘルプを使用できます。

SQLは、最初にプロンプ​​トをチェックしてから、実行する「select」ステートメントを決定する必要があります

(擬似コード)のようなもの

Select ACCT,LOC FROM (

   IF :loc = 'MN' THEN
      Select acc as ACCT,location as LOC
   ELSE IF :loc = 'MA' THEN
      Select accid as ACCT,locid as LOC
   ELSE IF :loc = 'PA' THEN 
      Select accountid as ACCT,location as LOC
   END IF)

上記はうまくいかないようです。助けてください!

4

3 に答える 3

2

どうですか...

select acc,
       case :loc
       When 'MN' then location
       When 'MA' then locid
       When 'PA' then location
       ...
       end
from   ...

また ...

select acc,
       case when :loc in ('MN','PA')
            then location
            When :loc in ('MA',...)
            then locid
            ...
       end
from   ...

これを行うと、一意のカーソルの数が減るので、より使いやすくなります。

于 2009-11-12T19:02:24.713 に答える
2

あなたはこれを行うことができます:

Select acc as ACCT,location as LOC 
where :loc = 'MN' 
UNION ALL
Select accid as ACCT,locid as LOC 
where :loc = 'MA' 
UNION ALL
Select accountid as ACCT,location as LOC 
where :loc = 'PA';
于 2009-11-12T17:52:29.487 に答える
1

カスタム PL/SQL 関数を作成できる場合は、そこから結果セット (レコードのテーブルと呼ばれる) を返し、関数から選択するだけです。この記事を参照してください。

于 2009-11-12T18:25:17.623 に答える