我要做的是,如果一个字段为空白,请WRKQRY
在定义结果字段中使用(Query/400)中的另一个字段。这可能吗?
问问题
3329 次
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 回答