DECODE(INSTR(B.VALUE, '主诊断入组失败原因'), '1', B.VALUE,'') SQL 错误 [22P02]: ERROR: invalid input syntax for type integer: "主诊断入组失败原因:传入数据格式出错请重新确认"
时间: 2023-11-28 12:05:05 浏览: 71
SQL 错误提示
这个错误是因为在DECODE函数中,当第一个参数返回的值不是整数时,DECODE函数无法将其解释为整数类型,因此会导致类型转换错误。具体来说,在这个DECODE函数中,当INSTR函数无法找到'主诊断入组失败原因'字符串时,它会返回一个字符串,而不是一个整数。因此,在DECODE函数中将其作为整数来处理将会导致类型转换错误。
要解决这个问题,您可以先使用一个IF函数或CASE语句来检查INSTR函数是否找到了'主诊断入组失败原因'字符串,然后根据情况返回相应的值。例如,以下是使用CASE语句的示例:
```sql
SELECT CASE WHEN INSTR(B.VALUE, '主诊断入组失败原因') > 0
THEN B.VALUE
ELSE ''
END AS result
FROM my_table B;
```
在上面的示例中,首先使用INSTR函数检查B.VALUE列中是否包含'主诊断入组失败原因'字符串。如果找到了该字符串,就返回B.VALUE的值;否则返回空字符串。通过这种方式,就可以避免类型转换错误。
阅读全文