2011-06-02 81 views
-1

我有一個包含負值和正值的列表,並希望通過單個查詢在不同列中顯示正值和負值。希望通過單個查詢在不同列中顯示正值和負值

Column 
-10000 
-17000 
16000 
25000 

輸出應該像

A  B  
----------------- 
-10000 16000 
-17000 25000 

我使用Oracle和SQL PL開發。

+0

@Alex氮雜:在Oracle社區的其餘部分上時,它不是用來回答這個問題作爲標記PLSQL SO皺眉。 – 2011-06-02 05:30:10

+1

你怎麼知道把-10000放在-10000的邊上,等等? – 2011-06-02 05:30:53

+6

當正數和負數不平衡時,你會發生什麼? – trutheality 2011-06-02 05:31:07

回答

3
select decode(sign(col),1,col) positive_value 
     , decode(sign(col),-1,col) negative_value 
     , decode(sign(col),0,col) zero_value 
from tbl_name 

我不知道這是否會工作或沒有,但一旦嘗試..

0

這可能是一個解決方案,但只有當正數和負數的數量是一樣的。

select a.column as negative, b.column as non_negative from table a, table b where a.column<0 and b.column>=0; 

當然哪裏,column是你的列名,table是你的表名。

1

HI薩拉,

只是試試這個

SELECT T1.POSITIVE_VALUE, T2.negetive_value 
FROM (select COL positive_value, ROWNUM C1 FROM TEST_1 WHERE COL >= 0) T1 
FULL OUTER JOIN (SELECT COL negetive_value, ROWNUM C2 FROM TEST_1 WHERE COL < 0) T2 
ON (T1.C1 = T2.C2); 
+0

對上一篇文章的支持.. 並感謝本版 – 2011-06-02 08:49:50

+0

現在,我可以糾正LT和GT運營商此代碼將提供所需的輸出。 – APC 2011-06-02 11:51:24

+0

@APC: 請告訴我關於LT和GT你在之前的評論中講的是什麼 – 2011-06-07 09:46:21

相關問題