我希望格式化由子查询创建的输出,此子查询生成一个计算字段,我想格式化为$ XX.XX。
子查询:
(select avg(retail) from cars
where brand = 'FORD' or brand = 'TOYOTA') as AVG_BRAND_PRICE_01
我基本上只是想添加一个$符号并将输出舍入到两位小数。
非常感谢任何帮助或指示。
我使用的是isql plus oracle 11g
答案 0 :(得分:0)
你可以试试这个:
'$' || 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)
答案 1 :(得分:0)
我基本上只是想添加一个$符号并将输出舍入到两位小数。
我使用的是isql plus oracle 11g
这是一个简单的显示设置。您需要正确设置 NUMFORMAT 。
如果你需要的是控制SQL*Plus
上的显示格式,那么最好使用SQL*Plus
命令来控制显示格式,而不是应用函数SQL级别。
在 SQL * Plus :
中SQL> SELECT AVG(sal) FROM emp;
AVG(SAL)
----------
2073.21429
SQL> set numformat $9999D99
SQL> SELECT AVG(sal) FROM emp;
AVG(SAL)
---------
$2073.21
SQL>
如果您将值显式ROUND为两位小数,则使用 ROUND 函数:
SQL> set numformat $9999D99
SQL> SELECT ROUND(AVG(sal),2) FROM emp;
ROUND(AVG(SAL),2)
-----------------
$2073.21
SQL>
如果您想要特定列的特定格式,则可以使用 COLUMN FORMAT 命令,该命令将覆盖该列的SET NUMFORMAT
属性。
例如,
SQL> set numformat $99999.99
SQL> column comm format 99999.99
SQL> select sal, comm from emp where rownum <=5;
SAL COMM
----------- ---------
$800.00
$1600.00 300.00
$1250.00 500.00
$2975.00
$1250.00 1400.00