首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在分离正负值的同时获得多个值

在分离正负值的同时获得多个值
EN

Stack Overflow用户
提问于 2021-05-22 05:07:26
回答 1查看 62关注 0票数 0
代码语言:javascript
复制
create table s4(val number);
INSERT ALL  
  INTO s4 (val) VALUES (1) 
  INTO s4 (val) VALUES (2)  
  INTO s4 (val) VALUES (-1) 
  INTO s4 (val) VALUES (-2)
  select * from dual;


WITH p AS(SELECT val AS Pos FROM s4 WHERE val > 0),
 n  AS (SELECT val AS Neg FROM s4 WHERE val < 0)
 SELECT Pos,Neg FROM p,n 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-22 07:23:40

我怀疑你可能在找这样的东西:

代码语言:javascript
复制
SQL> with
  2  p as
  3    (select val as pos,
  4            rownum rn
  5     from s4
  6     where val > 0
  7    ),
  8  n as
  9    (select val as neg,
 10            rownum rn
 11     from s4
 12     where val < 0
 13    )
 14  --
 15  select p.pos, n.neg
 16  from p left join n on n.rn = p.rn     -- more positive values
 17  union
 18  select p.pos, n.neg
 19  from p right join n on n.rn = p.rn;   -- more negative values

       POS        NEG
---------- ----------
         1         -1
         2         -2

SQL>

是干什么的呢?

  • rownum在这里是为了让您可以通过something
  • outer联接来连接行,以便在正值的个数不等于负值的情况下返回行(例如,如果插入值为3的行,则内部联接不会返回)
    • 就是union,因为可能存在更多的负值或更多的正值;无法判断happen

将在哪种情况下

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67646303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档