我有一列显示的财务数据。有些数字是正面的,有些数字是负面的。
是否可以将SQL Server 2005上的-945更改为(945)。
答案 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