首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL在一行中合并记录

问使用SQL在一行中合并记录
EN

Stack Overflow用户
提问于 2016-01-28 00:50:01
回答 2查看 32关注 0票数 0

如何在SQL查询中将两条记录合并为一行?我的数据如下所示:

代码语言:javascript
复制
Name    | Address     | Address_Type
--------------------------------------
Smith   | 123 Main St | P

Smith   | PO Box 123  | M

我需要得到一个如下所示的结果:

代码语言:javascript
复制
Name    | P_Address   | M_Address
---------------------------------------
Smith   | 123 Main St | PO Box 123
EN

回答 2

Stack Overflow用户

发布于 2016-01-28 00:53:52

使用conditional Aggregate可以做到这一点

代码语言:javascript
复制
select Name,
       Max(case when Address_Type = 'P' then Address End) as P_Address,
       Max(case when Address_Type = 'M' then Address End) as M_Address
From Yourtable
Group by Name
票数 3
EN

Stack Overflow用户

发布于 2016-01-28 02:03:45

如果你知道每个人都只有一个"P“地址,而"M”地址永远不会超过一个,那么下面的方法是可行的:

代码语言:javascript
复制
SELECT
    P.name,
    P.address AS p_address,
    M.address AS m_address
FROM
    My_Table P
LEFT OUTER JOIN My_Table M ON
    M.name = P.name AND
    M.address_type = 'M'
WHERE
    P.address_type = 'P'

如果是这样的话,我还会确保通过数据库约束来实施这些业务规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35043311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档