很多时候当我们写一条查询语句的时候会使用到“||”拼接符,但是如果拼接的列中有一列在oracle数据库中的类型是NUMBER(10,2)这种时,查询结果可能会跟数据库中的值不一致。
例如表user_score:
name | score |
---|---|
Mark | 0.5 |
Jorn | 1. 3 |
根据上表写出一下查询语句:
select name||'='||score from user_score;
当我们执行这条语句时,结果可能会显示为:
Mark=.5
Jorn=1.3
但我们想要的结果是
Mark=0.5
Jorn=1.3
因此,我们应将sql语句改成
select name||'='||to_char(score,'0.0') from user_score;
问题原因:是因为oralce对小于1的小数在显示时默认抹除小数点前的0