【问题标题】:How do I combine/group multiple rows into one row如何将多行组合/分组为一行
【发布时间】:2019-01-07 21:14:50
【问题描述】:

我在将查询结果的所有行合并为一行时遇到问题。

这是我的结果的快照

列 1 列 2 列 3 列 4 1900200196 空 1900200196 空 1900200196 Null Intake and assmnt/eva 1900200196 空员工口译员 1900200196 口译员 1900200196 空

我希望我的结果看起来像这样

列 1 列 2 列 3 列 4 1900200196 MEDICAL INTERPRETER 员工口译员 Intake and assmnt/eval

任何朝着正确方向的帮助都可以。

【问题讨论】:

  • 如果有一列有多于一行的非空值,你想怎么办?
  • 当一列有多个非空值时会发生什么似乎还不清楚。
  • 我认为MEDICAL 是输入错误。

标签: sql oracle


【解决方案1】:
select column1, 
       max(column2) as column2,
       max(column3) as column3,
       max(column4) as column4
from your_table
group by column1

【讨论】:

    【解决方案2】:

    好像你想要聚合:

    with A as (
        select 1900200196 as column1, null as column2, 'INTERPRETER' as column3, 'foo' as column4 FROM DUAL
        UNION
        select 1900200196, 'M', null, null FROM DUAL
    )
    SELECT column1, MAX(column2) column2, MAX(column3) column3, MAX(column4) column4 FROM A GROUP BY column1
    
    第 1 列 |第 2 栏 |第 3 栏 |第 4 栏 ---------: | :-------- | :------------ | :------ 1900200196 |中号 |口译员 |富

    db小提琴here

    【讨论】:

    • 非常感谢大家
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2021-03-26
    • 2021-04-01
    • 2023-04-02
    相关资源
    最近更新 更多