首页 > 解决方案 > sql中一组列的一个值

问题描述

我有这样的列,所有列都来自三个不同的表。

GROUPID     COMPANYID CUSTID    DEAL
121         A           1       DEAL1
121         A           1       DEAL2
121         A           1       DEAL3
121         B           2       DEAL1
121         B           2       DEAL2
121         B           2       DEAL3

我想要像这样的列

GROUPID     COMPANYID CUSTID    DEAL
121         A           1       DEAL1
                                DEAL2
                                DEAL3
            B           2       DEAL1
                                DEAL2
                                DEAL3

你能帮我解决这个问题吗?

谢谢

标签: sqloracle

解决方案


好吧,从我的角度来看,这是客户端问题,不一定是 SQL 问题。任何体面的报告工具(例如 Oracle Reports Builder、Oracle Apex Classic 报告……)都能够破坏您选择的列上的数据。

即使是好的、旧的 SQL*Plus 也知道如何做到这一点。

这是您当前的结果:

SQL> select * from three_tables order by groupid, companyid, custid, deal;

   GROUPID COMPANYID      CUSTID DEAL
---------- ---------- ---------- -----
       121 A                   1 DEAL1
       121 A                   1 DEAL2
       121 A                   1 DEAL3
       121 B                   2 DEAL1
       121 B                   2 DEAL2
       121 B                   2 DEAL3

6 rows selected.

休息(正如我所说):

SQL> break on groupid on companyid on custid
SQL>
SQL> select * from three_tables order by groupid, companyid, custid, deal;

   GROUPID COMPANYID      CUSTID DEAL
---------- ---------- ---------- -----
       121 A                   1 DEAL1
                                 DEAL2
                                 DEAL3
           B                   2 DEAL1
                                 DEAL2
                                 DEAL3

6 rows selected.

SQL>

我建议您也这样做 - 在您使用的工具中设置中断选项。


推荐阅读