添加 $ 并保留 2 位小数 SQL

add $ and round 2 decimal places SQL

我想格式化一个由子查询创建的输出,这个子查询生成一个计算字段,我想将其格式化为 $XX.XX.

子查询:

(select avg(retail) from cars 
where brand = 'FORD' or brand = 'TOYOTA') as AVG_BRAND_PRICE_01

我基本上只是想添加一个 $ 符号并将输出四舍五入到小数点后两位。

如有任何帮助或指导,我们将不胜感激。

我用的是isql plus oracle 11g

你可以试试这个:

'$' || Cast((select avg(retail) from cars 
where brand = 'FORD' or brand = 'TOYOTA') as decimal(4,2)) as AVG_BRAND_PRICE_01

如果您想要超过 $XX.XX,例如 $XXXXXXX.XX,那么您需要将小数点设置得更高,例如十进制(9,2)

示例 SQL Fiddle:http://www.sqlfiddle.com/#!4/9f684/2/0

I basically just want to add a $ sign and round the output to two decimal places.

I am using isql plus oracle 11g

这是一个简单的显示设置。您需要正确设置 NUMFORMAT

如果你只需要在SQL*Plus控制显示格式,那么最好使用SQL*Plus命令来控制显示格式而不是在 SQL 级别应用功能。

SQL*加:

SQL> SELECT AVG(sal) FROM emp;

  AVG(SAL)
----------
2073.21429

SQL> set numformat 99D99
SQL> SELECT AVG(sal) FROM emp;

 AVG(SAL)
---------
 73.21

SQL>

如果您明确地将值四舍五入到小数点后两位,则使用 ROUND 函数:

SQL> set numformat 99D99
SQL> SELECT ROUND(AVG(sal),2) FROM emp;

ROUND(AVG(SAL),2)
-----------------
         73.21

SQL>

如果您想要特定列的特定格式,则可以使用 COLUMN FORMAT 命令,该命令将覆盖 SET NUMFORMAT 属性那一栏。

例如,

SQL> set numformat 999.99
SQL> column comm format 99999.99
SQL> select sal, comm from emp where rownum <=5;

        SAL      COMM
----------- ---------
    0.00
   00.00    300.00
   50.00    500.00
   75.00
   50.00   1400.00