2012-12-05 30 views
0

时如何花括号添加到负值,这将是两列相减的结果,加括号的负值减去

假设我有三列

 A  B   result(B-A) 
----------------------------------------- 
     1  4    3 

     2  1   -1 [should be displayed as (1) not -1] 

     9  3   (6) 
----------------------------------------- 
total 3  5   (4) 

如何在选择查询中做到这一点?

+2

什么rdbms你在用吗? *仅供参考 - 这应该在应用程序层完成,而不是在sql。* – Taryn

+0

您使用的数据库是? – Thilo

+0

“大括号”是那些:{}'。你的意思叫做“圆括号”:http://en.wikipedia.org/wiki/Bracket –

回答

1

如果你使用SQL Server试试这个:

select case 
     when (b-a) < 0 then '{ ' + substring(CONVERT(NVARCHAR,(b-a)),2,2) + '}' 
     else CONVERT(nvarchar(max),(b -a)) END as result 
from table 
0

查询:

SQLFIddleExample

SELECT 
t1.A, 
t1.B, 
CASE WHEN t1.B-t1.A<0 
     THEN '('+CAST((t1.B-t1.A)*-1 as varchar(5))+')' 
     ELSE CAST(t1.B-t1.A as varchar(5)) END AS result 
FROM tbl t1 

结果:

| A | B | RESULT | 
------------------ 
| 1 | 4 |  3 | 
| 2 | 1 | (1) | 
| 9 | 3 | (6) |