我有一个具有负值和正值的列表,并希望通过单个查询在不同列中显示正值和负值。
Column
-10000
-17000
16000
25000
输出应该像
A B
-----------------
-10000 16000
-17000 25000
我正在使用oracle和pl sql developer。
答案 0 :(得分: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
我不知道这是否会起作用,但一旦尝试了......
答案 1 :(得分:1)
HI sara,
试试这个
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);
答案 2 :(得分: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
是您的表名。