【发布时间】:2017-09-20 18:44:57
【问题描述】:
我正在尝试向视图中添加一列,在该视图中我使用以下代码仅从格式为“姓氏,名字”的字段中提取姓氏:
VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES,1,LOCATE(',', A.PREVIOUS_NAMES)-1)), '')
AS "PREVIOUS_NAME",
当字段中有逗号时,这可以正常工作,但是,正如以下问题所引用的,当逗号不存在时,视图会出错。
SQLCode=-138 flagging on large count tables but not small DB2
我试图提出一个案例陈述来解决这个问题,选择逗号出现的时间,但我没有成功,我正在寻求有经验的人的帮助或建议。
RTRIM(
CASE WHEN LOCATE(",", A.PREVIOUS_NAMES) = 0
THEN A.PREVIOUS_NAMES
ELSE SUBSTR(A.PREVIOUS_NAMES,1,LOCATE(",", A.PREVIOUS_NAMES)-1)
END) AS "PREVIOUS_NAME"
它不是很复杂,它给我 SQLcode-206 说“,在它使用的上下文中无效”。
感谢您提供的任何帮助!
【问题讨论】: