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 已过时,应视为已弃用。大约 2 年前,它被查询管理取代。Query/400 查询在旧的数据库优化器 (CQE) 下运行,无法从新优化器 (SQE) 采用的更新更快的优化技术中受益。建议将 Query/400 查询迁移到 QM Query 或 DB2 Web Query。

幸运的是,可以在提示模式下创建查询管理查询,这对于 Query/400 用户来说应该非常熟悉。提示模式查询可以转换为更强大的 SQL 模式。

您可以使用该RTVQMQRY命令从您询问的 Query/400 查询中生成 SQL 源。一旦获得源,您就可以使用CASE ... END@Mike 给出的表达式。使用命令创建 QM 查询CRTQMQRY,并使用STRQMQRY.

于 2012-05-17T05:09:12.617 回答
1

如果您仍然需要这样做,我可以通过 3 次 Query 400 向您展示如何做到这一点。是的,我知道这效率不高,但可以做到。

于 2013-01-14T21:56:17.537 回答
0

看看应该对你有用CASE

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