我在我的Postgresql函数中使用to_number
:
v_t_to=to_number((select cast(json_extract_path(objjson,'t_to') as text)),'9999999999999999.99');
但是当“ t_to”为“”或“ t_to”为空时,错误为Invalid input type syntax syntax: ""
我需要将v_t_to保存到我的表中,该列可能为空,所以我该怎么办?
json喜欢这个:
"reach_condition_array":[
{
"up_s_line_no":1,
"t_from":20.1,
"t_to":30.1,
"rebate":11
},
{
"up_s_line_no":2,
"t_from":30.1,
"t_to":null,
"rebate":22.5
},
{
"up_s_line_no":3,
"t_from":40.6,
"t_to":"",
"rebate":30
}
]
如何解决?
答案 0 :(得分:0)
如Luarenz Albe所述,您可以使用CASE
。
另一种解决方案是,如果字符串为空,则首先使用NULLIF
来获取NULL
,然后使用COALESCE
来获取默认值(在我的示例中,0
下)(如果值为NULL
:
v_t_to=to_number((select COALESCE(NULLIF(cast(json_extract_path(objjson,'t_to') as text), ''), '0')),'9999999999999999.99');