SQL用括号替换减号

时间:2019-01-16 09:50:01

标签: sql sql-server sql-server-2005

我有一列显示的财务数据。有些数字是正面的,有些数字是负面的。

是否可以将SQL Server 2005上的-945更改为(945)。

3 个答案:

答案 0 :(得分:1)

以下表达式在大多数情况下应该适用:

SELECT num, CASE
    WHEN num < 0 THEN '(' + CAST(-num AS VARCHAR(11)) + ')'
    ELSE CAST(num AS VARCHAR(11))
END AS frmtd
FROM (
    SELECT    0 AS num UNION ALL
    SELECT  945        UNION ALL
    SELECT -945
) tests

答案 1 :(得分:0)

有一个名为ABS()的SQL函数,该函数基本上将负数和正数更改为仅从0开始的相对值,这意味着它除去了负号但不影响正值。

您可以找到有关here的更多信息

答案 2 :(得分:0)

您还可以尝试在Sql Server中使用Replace函数,如下所示。

当值在(-)ve内时。

Select CAST(REPLACE(CAST(-945 as Varchar(4)), '-', '') as Int)

当值已经在(+)ve内时。

Select CAST(REPLACE(CAST(945 as Varchar(4)), '-', '') as Int)

两种情况下的输出均为:945