2012-12-05 53 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) |