摆脱两列选择中的一列重复值

时间:2015-10-01 08:07:51

标签: sql oracle output-formatting

所以,我有两列t1.NAME和t2.ITEMS,每个neme可以分配多个项目,所以我想选择它:

class MyWidget : public QWidget
{
    QGraphicsView myView;
    MyWidget()
    {
        myView->installEventFilter(this);
        // incoming events to myView are shown on the standard output
    }
};

P.S。如果它有帮助,它们通过t1.id = t2.names_id

连接

3 个答案:

答案 0 :(得分:0)

我的下面查询的结果非常接近你想要的...唯一的区别是,没有空白名称,因为你不能直接在一步查询中执行该结果..每个项目都属于每个id的名称T1。但是如果你想获得确切的结果,你可以在那里做一些技巧,你可以使用UPDATE对结果做一些技巧。

    SELECT t1.NAME, t2.ITEMS
    FROM t1 INNER JOIN t2 ON t1.id = t2.names_id

答案 1 :(得分:0)

这种操作应该在表示层完成。

enter image description here enter image description here

但如果你坚持你可以使用......:/ / p>

<强> SqlFiddleDemo

SELECT DISTINCT NAME,
      LISTAGG(Items,  chr(13)||chr(10)) WITHIN GROUP (ORDER BY 1) OVER (PARTITION BY Name) AS Items
FROM tab

使用子查询更改选项卡,以生成您现在获得的输出。

线索是连接每个名称对应的项目并添加换行符CHR(13) + CHR(10)

答案 2 :(得分:0)

我通常在 SQL * Plus 中执行此操作,而这完全是关于格式化输出

您可以使用 BREAK ON column_name

例如,

SQL> break on deptno
SQL> SELECT deptno, ename FROM emp order by deptno;

    DEPTNO ENAME
---------- ----------
        10 CLARK
           KING
           MILLER
        20 JONES
           FORD
           ADAMS
           SMITH
           SCOTT
        30 WARD
           TURNER
           ALLEN
           JAMES
           BLAKE
           MARTIN

14 rows selected.