Postgresql to_number() 函数格式
Posted
技术标签:
【中文标题】Postgresql to_number() 函数格式【英文标题】:Postgresql to_number() function format 【发布时间】:2016-09-14 14:40:37 【问题描述】:我想使用 postgresql to_number(numberString, format_mask)
。我的 numberString 可能包含前导零(我不知道这些零的实际长度和 numberString 的总数)。我想修剪这些零并将值作为数字。
我已经阅读过这个函数here 并且目前使用的格式是:
select to_number('00005469', '9999999999')
但是如果 '9's 的长度小于 numberString 的长度,那么我就无法得到正确的数字。如何在 format_mask 中不写一长串“9”的情况下完成这项工作?
【问题讨论】:
【参考方案1】:您不需要to_number()
。只需将字符串转换为整数:
select '00005469'::integer;
或使用标准 SQL:
select cast('00005469' as integer);
【讨论】:
【参考方案2】:如果您的列是否有小数,为了更安全,请使用
select NULLIF('00005469', '')::decimal
如果有小数,这个select '00005469'::integer;
将不起作用
【讨论】:
【参考方案3】:这样使用很简单:
to_number(to_char(yournumber, '99'),'99')
【讨论】:
不鼓励仅使用代码的答案,因为它们没有说明如何解决问题。请更新您的答案,以解释这如何改进该问题已经接受和赞成的答案。请查看How do I write a good answer。以上是关于Postgresql to_number() 函数格式的主要内容,如果未能解决你的问题,请参考以下文章