定义结果字段(如果为空),则定义另一个字段



我想做的是,如果一个字段为空,请在定义结果字段中使用WRKQRY(Query/400)中的另一个字段。这可能吗?

您可以使用

RUNSQLSTM 命令创建 SQL 视图,然后对该视图运行查询。

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

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

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

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

如果您仍然需要执行此操作,我可以向您展示如何在 Query 400 的 3 次传递中执行此操作。是的,我知道这效率不高,但可以做到。

看看CASE应该适合你。

CASE field
    WHEN ' ' THEN newfield
    ELSE field
END as myfield 

相关内容

  • 没有找到相关文章

最新更新