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

SQL查询将行转换为列

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

SQL查询将行转换为列

使用SQL Server
2008,将Pivot和Rank函数组合在一起,可以为每个雇员数量提供理想的结果。首先,我们为每个分支中的每个员工分配一个ID,从每个新分支中的1开始,然后使用透视运算符来翻转结果

create table data(id int, branch int, employee varchar(20)) insert into data (id, branch, employee) values (1, 1, 'M眉ller'), (2, 1, 'Meler'), (3, 1, 'Schmidt'), (4, 1, 'Schultz'), (5, 2, 'Schr枚der'), (6, 2, '=tg= Thomas'), (7, 3, 'Stephan')select branch, [1] as emp1, [2] as emp2, [3] as emp3, [4] as emp4, [5] emp5 from(  select ROW_NUMBER() over (partition by branch order by id) employee_branch_id, branch, employee     from data) data_with_employee_branch_id -- assign a number from 1 to n for each emplyee in the branch pivot (  max(employee) --it must be a aggregat, since we have only one row the max of a string will be the string  for employee_branch_id in ( [1], [2], [3], [4], [5] )) as data_pvt


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

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

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