显示小数点后的第一个精度值(在oracle中)

时间:2014-05-01 23:00:55

标签: sql oracle plsql

我的表格包含以下值

Column_A (Type is Varchar)
  0.181
   165
  0.13
  0.034
  Count

必须出局

18.1%
165
13.0%
3.4%
Count

因此,仅对于十进制值,它应以百分比形式转换。

我尝试了以下语法,该方法适用于所有结果,此处仅发布值为0.13,产生13%但不是13.0%

SELECT 
CASE  WHEN COLUMN_A LIKE '%.%' THEN CAST(CAST(COLUMN_A AS DECIMAL(10,3))*100 AS VARCHAR2(8))||'%'  ELSE COLUMN_F END AS COLUMN_F
FROM   Table_a;

有人有快速建议更改查询吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT 
  CASE
    WHEN COLUMN_A LIKE '%.%' THEN
      TO_CHAR(CAST(COLUMN_A AS DECIMAL(10,3))*100, '999.0') || '%'
    ELSE COLUMN_A
   END AS COLUMN_F
FROM   Table_a;

SQLFiddle here

分享并享受。