栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL连接表-每个“上”匹配字段的连接表上有多行合并为一行?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL连接表-每个“上”匹配字段的连接表上有多行合并为一行?

要在固定数量的列上旋转结果集,可以使用

row_number()
和条件聚合:

select    job_number,     total_amount,    max(case when rn = 1 then charge_pre end) charge_pre1,    max(case when rn = 1 then charge_amount end) charge_amount1,    max(case when rn = 2 then charge_pre end) charge_pre2,    max(case when rn = 2 then charge_amount end) charge_amount2,    max(case when rn = 3 then charge_pre end) charge_pre3,    max(case when rn = 3 then charge_amount end) charge_amount3 from (    select        j.job_number,        j.total_amount,        c.charge_pre,        c.charge_amount,        row_number() over(partition by job_number, total_amount order by c.charge_pre) rn    from DB.Jobs j    inner join DB.Job_Charges c on j.job_number = c.job_number) tgroup by job_number, total_amount

上面的查询最多可提供3个费用代码和金额等于工作编号(按工作代码排序)。您可以

select
使用更多
max(case...)
表达式来扩展子句,以处理更多表达式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号