oracle的pl/sql,不使用to_char,有办法把小数点前不显示的0显示出来吗?

declare
v_name varchar2(50);
v_sal number(7,2);
v_pin number(7,2);
c_psa constant number(3,2):=0.03;
begin
select ename,sal into v_name,v_sal from emp where empno=&请输入员工编号;
v_pin:=v_sal*c_psa;
dbms_output.put_line('姓名:'||v_name);
dbms_output.put_line('工资:'||v_sal);
dbms_output.put_line('个人所得税:'||v_pin);
dbms_output.put_line('税率:'||c_psa);
end;

税率的部分显示的.03,小数点前面少0
不使用to_char格式化,也不使用比较麻烦的函数,有办法显示吗?

没什么好方法,只能用to_char
dbms_output.put_line('税率:'|| to_char(c_psa,'fm9999999990.00'));
或者在前边定义变量的时候就设置为varchar2类型
或者decode函数,但是无法用在dbms_output.put_line中
decode(substr(c_psa,1,1),'.','0'||c_psa,c_psa)
温馨提示:内容为网友见解,仅供参考
无其他回答

oracle的pl\/sql,不使用to_char,有办法把小数点前不显示的0显示出来吗...
没什么好方法,只能用to_char dbms_output.put_line('税率:'|| to_char(c_psa,'fm9999999990.00'));或者在前边定义变量的时候就设置为varchar2类型 或者decode函数,但是无法用在dbms_output.put_line中 decode(substr(c_psa,1,1),'.','0'||c_psa,c_psa)

plsql 操作oracle数据库0.5显示.5,求解决方法
这个没有问题的,数据库在存储时,为了节省空间,就会省略前面的0,如果你有需要可以用格式化输出的方式来让小数完整显示,例如select to_char(0.5, 'FM99999990.099') from dual;

oracle 问题,如下SQL,出现除数不能为零了,我知道用decode解决,但怎么...
sum(nvl(g.commission_fee, 0)) as commission_fee,( CASE WHEN (select sum(nvl(g2.commission_fee, 0))from POSP_BOSS.AGENT_ANALYSIS_CATEGORY g2 where g2.count_month = '2013-07'and g2.agent_no = '8619173620') == 0 THEN '0' ELSE trim(to_char((round(sum(nvl(g.commiss...

oracle 聚合函数求和后,小数点前面的零不显示
我这里测试了, 你那种写法,是没有问题的啊。CREATE TABLE test_tochar( id INT, val decimal(10,4));INSERT INTO test_tochar VALUES(1, 0.0001);INSERT INTO test_tochar VALUES(2, 0.0012);INSERT INTO test_tochar VALUES(3, 0.0123);INSERT INTO test_tochar VALUES(4...

oracle 小数点后面怎么保留0
oracle to_char(小数) 默认如此 oracle就是这样的 to_char用法本身也是需要格式化的,只不过我们平时对于普通字符都是直接to_char而已,对于时间,钱币等都是需要格式化的,对于小数不格式化就是没有前面的零的,可以这样格式化 select to_char(0.1,'fm9999990.9999') from dual;

Oracle小数点的实际保留问题的4方案
方法一 使用to_char的fm格式 即 to_char(round(data amount ) FM ) as amount 不足之处是 如果数值是 的话 会显示为 而不是 另一需要注意的是 格式中Oracle小数点左边 的个数要够多 否则查询的数字会显示为n个符号 解决方式如下 select decode(salary (to_char(round(salary ) fm ))) ...

Oracle数据库的pl\/sql编程问题:
所以,你的||右边,不是字符型。而是数字型。ORACLE应该用TO_CHAR来把数字型转化成字符型。dbms_output.put_line('转账前总余额:'||to_char(account_a+account_b));这两个分开写,上面的那个写法,输出的结果是在两行,而下面,会使输入结果在一行中。而且如果直接使用put_line,括号内可以是...

oracle FM去掉了小数点后的0,怎么去掉小数点?
您可以使用 `FM99990.0` 来格式化转换,这样可以将小数点后面的 0 去掉,同时可以保留一位小数。具体地:```to_char(ts, 'FM99990.0') || '天'```例如,如果 `ts` 的值是 1.0,则上述语句返回的结果是 `'1天'`;如果 `ts` 的值是 0.5,则返回的结果是 `'0.5天'`。

sql中如何令日期的不显示“0”?
第一个问题 我把雇佣时间默认当前时间GetDate(). 那么就如下写法Select Year(GetDate()) +‘年'+month(GetDate())+’月'+day(GetDate())+'日'第二个问题 总收入我就随便写了一个 123.12541

如何修改Oracle中的字段不用科学计数法表示?
SQL>set numw 20; -- 表示直接显示20位有效数字 oracle没有相关命令和设置,建议设计表是不要用长数字类型,用字符型。另外如果是PL\/SQL developer 工具的话,可以这样设置:TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中Number fields to_char;希望对你有帮助。

相似回答