gpt4 book ai didi

postgresql - Postgres SQL 状态 : 22P02

转载 作者:行者123 更新时间:2023-11-29 11:23:47 25 4
gpt4 key购买 nike

我需要在 Postgres 中运行以下查询:

select left(file_date, 10) as date, lob_name, devicesegment, sum(conversion_units::numeric) as units
from bac_search.dash_search_data
where (lob_name= 'Mortgage' and file_date::date between (CURRENT_DATE - INTERVAL '30 days') and CURRENT_DATE)
or (lob_name= 'Loans' and file_date::date between (CURRENT_DATE - INTERVAL '30 days') and CURRENT_DATE)
group by file_date, lob_name, devicesegment
order by file_date, lob_name, devicesegment;

尽管将 conversion_units 设置为数字,但它给我以下错误:

ERROR:  invalid input syntax for type numeric: ""
********** Error **********

ERROR: invalid input syntax for type numeric: ""
SQL state: 22P02

值得注意的是,我已经完成了一些单元测试,当我运行这个 Mortgage 查询并删除 Loans 行时,它工作正常。我已将问题隔离到 conversion_units::numeric for Loans。除了通常的转换(正如我在此处指定的那样)之外,我不确定还可以尝试什么。我通读了带有此错误的问题,但它们似乎并未反射(reflect)我的问题。任何帮助表示赞赏!谢谢!

最佳答案

显然 conversion_units 是一个字符串,它可以保存不能转换为 numeric 的值。

你眼前的问题可以这样解决:

SUM(NULLIF(conversion_units, '')::numeric)

但可以有其他值。

您可以尝试使用正则表达式来匹配可转换字符串:

SUM((CASE WHEN conversion_units ~ E'^\\d(?:\\.\\d)*$' THEN conversion_units END)::numeric)

关于postgresql - Postgres SQL 状态 : 22P02,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31123872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com