如何在Postgres中将字符串转换为数字?

时间:2018-01-05 07:33:09

标签: postgresql

我正在

  

"错误:数字类型的输入语法无效:" NOS-Numbers" "

运行查询时

数据类型:

quantity numeric(15,3)

查询:

insert into report_data(quantity)
select case 
         when p.product= 'OUTRIGHT' then 
           case 
             when sum(convert_to_integer(p.qty,0)) > 0 then 'NOS-Numbers' 
             else to_number('') 
            end 
           else to_number('') 
         end
from product_details 

请帮助解决此问题。

1 个答案:

答案 0 :(得分:0)

您不能将字符串存储在数字列中,并且存储显示数据通常是个坏主意。使用NULL代替未知值,并在获取时将其转换为更好的可显示值。 E.g:

SELECT COALESCE(quantity, 'NOS-Numbers') FROM report_data;

将为'NOS-Numbers'返回NULL,否则返回quantity的值。