面试题 SqlServer知识
现有如下的表数据
通过sql语句将其改成列转行
解题思路:
- 先按num分组排序生成rIndex
- 再按名称分组score排序生成index
- 最后将2张分组排序的数据拼起来
1 2 3 4 5 6 7 8 9 10 | select * from 面试题 select name ,score1,score2 from ( select 面试题. Name ,面试题.score as score1,r.score as score2,ROW_NUMBER() over(partition by 面试题. Name order by 面试题.score) rIndex2 from 面试题 inner join ( select name ,ROW_NUMBER() over(partition by num order by num) rIndex,score from 面试题 ) r on 面试题. Name =r. Name where r.score<>面试题.score )a where rIndex2=1 order by score1 asc |
了解更多的列转行信息,请查看:SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
分类:
其他
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签