1

私がやろうとしているのは、フィールドが空白の場合、WRKQRY結果フィールドの定義で(Query / 400)内の別のフィールドを使用することです。これは可能ですか?

4

4 に答える 4

1

コマンドを使用して SQL ビューを作成し、RUNSQLSTMそのビューに対してクエリを実行できます。

CREATE VIEW QTEMP/MYVIEW AS
SELECT F1, CASE WHEN F2 <> ' ' THEN F2 ELSE F3 END AS FX FROM MYLIB/MYFILE

次に、プログラムですべてを結び付けCLます。

PGM

DLTF FILE(QTEMP/MYVIEW)
MONMSG MSGID(CPF0000)
RUNSQLSTM SRCFILE(MYLIB/MYSRC) MBR(MYMBR)
RUNQRY QRY(MYLIB/MYQRY)

ENDPGM
于 2012-05-16T16:35:39.753 に答える
1

Query/400 は廃止されており、非推奨と見なす必要があります。これは、約 20 年前にクエリ管理に置き換えられました。Query/400 照会は、古いデータベース・オプティマイザー (CQE) の下で実行され、新しいオプティマイザー (SQE) によって採用された新しいより高速な最適化手法の恩恵を受けることはできません。Query/400 クエリを QM Query または DB2 Web Query に移行することをお勧めします。

さいわい、Query 管理機能 Query は、Query/400 ユーザーにはなじみのあるプロンプト・モードで作成できます。プロンプト モードのクエリは、より強力な SQL モードに変換できます。

このRTVQMQRYコマンドを使用して、質問した Query/400 クエリから SQL ソースを生成できます。ソースCASE ... ENDを取得したら、@Mike によって指定された式を使用できます。CRTQMQRYコマンドでQM クエリを作成し、 で実行しSTRQMQRYます。

于 2012-05-17T05:09:12.617 に答える
1

それでもこれを行う必要がある場合は、クエリ 400 の 3 回のパスで行う方法をお見せします。ええ、それは効率的ではないことはわかっていますが、実行できます。

于 2013-01-14T21:56:17.537 に答える
0

あなたのために働くはずですをCASEてください。

CASE field
    WHEN ' ' THEN newfield
    ELSE field
END as myfield 
于 2012-05-16T13:36:47.243 に答える