2013-12-12 197 views
-1

我不知道现在该做什么... 这是我现在从查询中得到的,但我希望它看起来像某物在表下面这个:pl/sql:按公司排序,然后公司,或附加2表

COMPANYNUM  BALANCE  ROWENTRIES 
2   8986762.37  2 
125   141390.3   6 
124   77431750   4 
76   36299.82   6 
17   -0.01    76 
86   -1    19 
500   -2000     7 
1   -101.48    6348 
3    0    5 
4    0    6 
5    0    30 
9    0   10 
12    0    28 
13    0    93 
16    0    17 
19    0    159 
21    0    5 
23    0    6 
26    0    101  
27    0    1 
29    0    2 
30    0    14 
32    0    6 
33    0    110 
34    0    27 

我希望它是这样的:

COMPANYNUM BALANCE  ROWENTRIES 
1    -101.48  6348 
2    8986762.37  2 
17   -0.01    76 
76   36299.82  6 
86   -1    19 
124   77431750  4 
125  141390.3  6 
500  -2000    7 
3    0    5 
4    0    6 
5    0    30 
9    0   10 
12    0    28 
13    0    93 
16    0    17 
19    0    159 
21    0    5 
23    0    6 
26    0    101  
27    0    1 
29    0    2 
30    0    14 
32    0    6 
33    0    110 
34    0    27 

我想要的顺序是这样的:优先在余额不为零,再由公司编号顺序,然后附加零的余额条目。任何想法如何在PL/SQL中实现这一点...

谢谢。

+0

您需要格式化你的问题,因此是可读的 – codingbiz

+0

欢迎SO。如果你不想得到一百万的赞成票,请阅读 - http://sscce.org/和 http://stackoverflow.com/questions/how-to-ask,然后回来。如果你想让某人花时间帮助你,你应该在写下你的问题时表现出一定程度的努力。 “询问代码的问题必须证明对所解决问题的最小理解,包括尝试的解决方案,为什么他们不工作以及预期的结果,另见:http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist – OldProgrammer

+0

@codingbiz:感谢您的建议,请您现在看一下吗?谢谢。 – user2751691

回答

1

尝试:

ORDER BY 
    CASE WHEN Balance <> 0 
     THEN COMPANYNUM 
    END NULLS LAST, 
    COMPANYNUM 

在这里看到一个演示:http://www.sqlfiddle.com/#!4/859be/1

+0

它的工作原理,当我试图运行它时返回正确的结果表,但不知何故总是给出错误:包装体的编译错误A.MAIN 错误:ORA-04052:查找远程对象[email protected]时发生错误。 SOME.COM ORA-00604:在递归SQL级别发生错误1 ORA-28545:连接到代理 无法检索到网络的文字/ NCR消息时确诊的Net8错误6553 行:1个 文本:CREATE OR REPLACE包装体a.MAIN有什么想法吗?非常感谢你。 – user2751691

+0

您的数据库在编译时无法与远程数据库建立连接。使用以下命令测试远程链接:'从dual @ REMOTE_DB_LINK选择sysdate;',还可以使用oracle'tnsping'实用程序ping远程数据库。 – krokodilko

+0

谢谢,这是网络问题,我猜,现在很好,并且我们的代码工作。非常感谢。 – user2751691