我有一个char(6)
数据类型的字段,值是整数的形式。 (例如33568,34048,37744)
我想要的只是将它转换为像这样的小数:
2000 = 200.00
33568 = 335.68
34048 = 340.48
37744 = 377.44
我尝试过使用
cast( "Field" as decimal(10,2))
Cast(Replace("Field",' ','.') as decimal(18,2))
但我无法达到我的预期。
PostgreSQL请。
答案 0 :(得分:1)
你可以创建这个功能来促进和重构你的Requet:
CREATE OR REPLACE FUNCTION character_decimal(texttoconvert character varying,i integer) RETURNS double precision AS $$
BEGIN
RETURN (case when length(texttoconvert) > i then left(texttoconvert, -i) else '0' end
|| '.'
|| case when length(texttoconvert) > 0 then right(texttoconvert, i) else '0' end ) :: double precision;
END;
$$ LANGUAGE plpgsql;
select character_decimal('2000',2);-->20.00
select character_decimal('33568',2);-->335.65
select character_decimal('34048',2);-->340.48
select character_decimal('37744',2);-->377.44
答案 1 :(得分:0)
为什么不直接在字符串中添加句点?
select left(col, -2) || '.' || right(col, 2)