在ABS功能中指定比例?

时间:2015-07-06 07:17:07

标签: sql sql-server oracle

是否可以从小数中指定ABS函数中的比例?

= ABS(([Accounting].salary+ABS([Accounting].expenses))/2)

截至目前,一切正常但数字在小数点后只有1位数时结果有问题:

100.12 - All ok
230.1 - Not ok, it should be 230.10 

我希望结果在小数点后总是有两个数字。

查询必须同时适用于MS SQL Server和Oracle。我可以手动为每个数据库指定查询。

2 个答案:

答案 0 :(得分:0)

只需更改代码:

= ABS(([Accounting].salary+ABS([Accounting].expenses))/2)

通过以下方式:

= CAST(ABS(([Accounting].salary+ABS([Accounting].expenses))/2) AS DECIMAL(18 /*set your format here instead of 18*/,2))

我刚用代码检查过它:

SELECT CAST(230.1 AS DECIMAL(18 /*set your format here instead of 18*/, 2)) 

一切正常

实际上,这只是用户在UI中表示您的号码的问题。您可以使用指定格式的to_char()将数字转换为字符串。但最好在前端定义输出格式

答案 1 :(得分:0)

对我来说,这是一个用户界面问题,而不是SQL问题。

230.1 - Not ok, it should be 230.10 

说真的,这两个数字都是一样的。

在Oracle中,您可以将数字转换为字符串,以便将其呈现给最终用户。

select to_char(234.1,'$9,999.99') from dual
 $234.10

查看Oracle文档中的格式模型。

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm