SQL连接两条记录

时间:2017-02-01 14:24:12

标签: sql oracle select join

我有一个查询输出像这样的行

CODE|FIELD1|FIELD2|FIELD3|FIELD4|FIELD5|
A   | DATA1| DATA2|      |      |  XYZ |
A   |      |      | DATA3| DATA4|data5A|

我想要这样的东西

CODE|FIELD1|FIELD2|FIELD3|FIELD4|FIELD5|
A   | DATA1| DATA2| DATA3| DATA4|data5B|

我该怎么做? '代码'不是独一无二的。 实际上这个查询产生了一个包含多行的结果集,因此我必须配对某人

2 个答案:

答案 0 :(得分:1)

您可以在这里使用的一个巧妙的技巧是使用max(或min)聚合函数 - 它将忽略null s,因此列中唯一的值也是列中的最大值:

SELECT   code,
         MAX(field1) AS field1,
         MAX(field2) AS field2,
         MAX(field3) AS field3,
         MAX(field4) AS field4,
         MAX(field5) AS field5
FROM     mytable
GROUP BY code

答案 1 :(得分:0)

使用此查询


    SELECT 
      CODE,
      MAX(FIELD1) AS FIELD1,
      MAX(FIELD2) AS FIELD2,
      MAX(FIELD3) AS FIELD3,
      MAX(FIELD4) AS FIELD4,
      MAX(FIELD5) AS FIELD5 
    FROM
      TABLE 
    GROUP BY CODE