首页 文章

想通过单个查询在不同列中显示正值和负值[关闭]

提问于
浏览
-1

我有一个具有负值和正值的列表,并希望通过单个查询在不同列中显示正值和负值 .

Column
-10000
-17000
 16000
 25000

输出应该是这样的

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

我正在使用oracle和pl sql开发人员 .

3 回答

  • 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

    这可能是一个解决方案,但前提是正数和负数的数量相同 .

    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 是您的表名 .

  • 0

    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);
    

相关问题