对两个表进行排序(全连接)

发布于 2024-08-28 20:10:08 字数 412 浏览 4 评论 0原文

我正在连接如下表:

select * from tableA a full join tableB b on a.id = b.id

但输出应该是:

  1. 没有空字段的行
  2. tableB 中带有空字段的行
  3. tableA 中带有空字段的行

类似:

a.id    a.name  b.id    b.name
5   Peter   5   Jones
2   Steven  2   Pareker
6   Paul    null    null
4   Ivan    null    null
null    null    1   Smith
null    null    3   Parker

i'm joining tables like:

select * from tableA a full join tableB b on a.id = b.id

But the output should be:

  1. row without null fields
  2. row with null fields in tableB
  3. row with null fields in tableA

Like:

a.id    a.name  b.id    b.name
5   Peter   5   Jones
2   Steven  2   Pareker
6   Paul    null    null
4   Ivan    null    null
null    null    1   Smith
null    null    3   Parker

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丶视觉 2024-09-04 20:10:08
create table a(id number, name varchar2(10));
insert into a(id, name) values(5, 'Peter');
insert into a(id, name) values(2, 'Steven');
insert into a(id, name) values(6, 'Paul');
insert into a(id, name) values(4, 'Ivan');

create table b(id number, name varchar2(10));
insert into b(id, name) values(5, 'Jones');
insert into b(id, name) values(2, 'Pareker');
insert into b(id, name) values(1, 'Smith');
insert into b(id, name) values(3, 'Parker');

select * from a full join b on a.id = b.id
order by
  case
    when a.id is not null and b.id is not null then 0
    when a.id is not null and b.id is null then 1
    when a.id is null and b.id is not null then 2 
    else 3
  end
;
create table a(id number, name varchar2(10));
insert into a(id, name) values(5, 'Peter');
insert into a(id, name) values(2, 'Steven');
insert into a(id, name) values(6, 'Paul');
insert into a(id, name) values(4, 'Ivan');

create table b(id number, name varchar2(10));
insert into b(id, name) values(5, 'Jones');
insert into b(id, name) values(2, 'Pareker');
insert into b(id, name) values(1, 'Smith');
insert into b(id, name) values(3, 'Parker');

select * from a full join b on a.id = b.id
order by
  case
    when a.id is not null and b.id is not null then 0
    when a.id is not null and b.id is null then 1
    when a.id is null and b.id is not null then 2 
    else 3
  end
;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文