协助 SQL 从可能有逗号的列中进行选择的案例陈述
Assistance on SQL Case statement for selecting from a column that Might have a comma
我正在尝试向视图中添加一列,我在其中使用以下代码从格式为 'LastName,FirstName':
的字段中仅提取姓氏
VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES,1,LOCATE(',', A.PREVIOUS_NAMES)-1)), '')
AS "PREVIOUS_NAME",
当字段中有逗号时,这工作正常,但是,正如以下问题所引用的,当逗号不存在时,视图会出错。
我试图想出一个案例陈述来解决这个问题,当出现逗号时select,但我一直没有成功,我正在寻求有经验的人的帮助或建议.
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 说“,在它使用的上下文中无效”。
感谢您提供的任何帮助!
我还没有在 DB2 中这样做过,但是解决这个问题的常用方法是添加一个逗号:
VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES, 1, LOCATE(',', A.PREVIOUS_NAMES || ',') - 1)), '')
AS "PREVIOUS_NAME",
我正在尝试向视图中添加一列,我在其中使用以下代码从格式为 'LastName,FirstName':
的字段中仅提取姓氏VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES,1,LOCATE(',', A.PREVIOUS_NAMES)-1)), '')
AS "PREVIOUS_NAME",
当字段中有逗号时,这工作正常,但是,正如以下问题所引用的,当逗号不存在时,视图会出错。
我试图想出一个案例陈述来解决这个问题,当出现逗号时select,但我一直没有成功,我正在寻求有经验的人的帮助或建议.
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 说“,在它使用的上下文中无效”。
感谢您提供的任何帮助!
我还没有在 DB2 中这样做过,但是解决这个问题的常用方法是添加一个逗号:
VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES, 1, LOCATE(',', A.PREVIOUS_NAMES || ',') - 1)), '')
AS "PREVIOUS_NAME",