postgresql 无效的类型 integer 输入语法: ""
时间: 2023-08-07 08:02:06 浏览: 475
根据你提供的SQL查询语句,看起来问题出在你的SELECT语句中的xhd::INTEGER这一行。这个错误通常是由于尝试将一个空字符串转换为整数类型所导致的。
在你的查询中,当C.carton_num不符合'CICU%'或'NCSE%'的条件时,xhd列可能会返回空字符串。然后尝试将空字符串转换为整数类型时,就会出现"无效的类型 integer 输入语法: ''"的错误。
为了解决这个问题,你可以使用NULLIF函数将空字符串转换为NULL值,然后再使用COALESCE函数将NULL值转换为适当的默认值。下面是一个示例:
```sql
CASE
WHEN C.carton_num LIKE 'CICU%' THEN (SUBSTRING(C.carton_num, 5, 6))::INTEGER
WHEN C.carton_num LIKE 'NCSE%' THEN (SUBSTRING(C.carton_num, 8, 6))::INTEGER
ELSE NULL
END AS xhd
...
COALESCE(xhd, 0) AS xhd_integer
```
在上面的示例中,如果xhd列为空值(即不符合'CICU%'和'NCSE%'条件),它将被转换为NULL。然后,使用COALESCE函数将NULL值转换为默认值0。
请根据你的实际情况进行相应的更改,并重新运行查询。如果你需要进一步的帮助,请提供更多关于表结构和数据类型的信息。