MSSQL 行转列问题

mssql 数据库表行转列,列转行终极方案 mssql 数据库表行转列,列转行终极方案,需要的朋友可以参考下。 立即下载

测试数据:

 

create table StudentScore
(
 Name varchar(12) NULL,
 ClassName varchar(12) NULL,
 Grade int NULL
)
INSERT INTO StudentScore(Name,ClassName,Grade)
VALUES
('张三','语文','78'),('张三','数学','79'),('张三','英语','80'),
('张三','物理','81'),('张三','政治','82'),
 ('李四','语文','84'),('李四','数学','85'),('李四','英语','86'),
('李四','物理','83'),('李四','政治','87'),
('王五','语文','89'),('王五','数学','82'),('王五','英语','90'),
('王五','物理','81'),('王五','政治','91') 


创建完测试数据后,SELECT后的结果如图:

要求写一条SQL查询语句,查询结果如下列显示

姓名 语文 数学 英语 物理 政治
张三 78 79 80 81 82
李四 83 84 85 86 87
王五 88 89 90 91 92

 

1 利用CASE WHEN关键字

SELECT Name,MAX(CASE ClassName WHEN '语文' THEN Grade ELSE 0 END)语文,
MAX(CASE ClassName WHEN '数学' THEN Grade ELSE 0 END)数学,
MAX(CASE ClassName WHEN '英语' THEN Grade ELSE 0 END)英语,
MAX(CASE ClassName WHEN '物理' THEN Grade ELSE 0 END)物理,
MAX(CASE ClassName WHEN '政治' THEN Grade ELSE 0 END)政治 
 FROM StudentScore GROUP BY Name


效果图:

2 利用PIVOT运算符

SELECT Name,[语文],[数学],[英语],[物理],[政治]
FROM StudentScore
PIVOT
(
 MAX(Grade)
 FOR ClassName IN ([语文],[数学],[英语],[物理],[政治])
) AS PivotTable


PIVOT是是sql server 2005新特性。

SELECT <non-pivoted column>,    --不要聚合的列

    [first pivoted column] AS <column name>,

    [second pivoted column] AS <column name>,

    ...

    [last pivoted column] AS <column name>

FROM

    (<SELECT query that produces the data>)

    AS <alias for the source query>

PIVOT

(

    <aggregation function>(<column being aggregated>)   --聚合函数加将要转置成行的列的数据

FOR

[<column that contains the values that will become column headers>]  --要被转置成行的列

    IN ( [first pivoted column], [second pivoted column],

    ... [last pivoted column])

) AS <alias for the pivot table>

<optional ORDER BY clause>;

 

#1机器学习(西瓜书)自学记录 《机器学习 》 Datawhale 组队学习, 吃瓜自学笔记。 阅读详情

相关推荐

半桥LLC谐振变换器及同步整流MATLAB仿真(一)

LLC工作原理详细解析,工作过程详细拆解

qq_55203246的博客 3万+

mssql行转列,列转行

一、行转列: select max(case OptionKey when 'A' then OptionCont else null end) A, max(case OptionKey when 'B' then OptionCont else null end) B, max(case OptionKey when 'C' then OptionCont else null end) C, max(case OptionKey when 'D' then OptionCont else nu

黄瓜炒鸡蛋的博客 2261

关于VS2022创建winform窗体后择项或选择工具箱项加载visionPro控件卡住,窗口未响应解决方法

解决winform加载工具箱选择项卡死问题

xiaokiss_的博客 3210

sql分割以,拼接的字符转换成临时表

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Create FUNCTION [dbo].[F_Split]  (      @SplitString nvarchar(max),  --源字符串      @Separator nvarchar(10)=' '  --分隔符号,默认为空格  )  RETURNS @SplitStrings...

qq_38225873的博客 594

基于分数阶的图像边缘细节检测——边缘计算

在图像处理中,我们可以使用分数阶导数运算器来计算图像的分数阶梯度,从而得到更精确的边缘信息。通过使用基于分数阶的图像边缘细节检测方法,我们可以更准确地捕捉图像中的边缘细节信息。在这篇文章中,我们将介绍一种基于分数阶的方法来进行图像边缘细节检测,并提供相应的源代码实现。需要注意的是,以上提供的代码示例仅用于演示基于分数阶的图像边缘细节检测方法的实现。然后,我们读取了待处理的图像,并进行了预处理,如高斯模糊,以减少噪声的影响。最后,我们通过设置一个阈值,将梯度图像转化为二值化的边缘图像,并将结果显示出来。

GudcSql的博客 403

AI产品经理面试宝典第94天:RAG知识库构建与预处理策略面试指南

本文深入解析RAG知识库构建的核心挑战与预处理策略,涵盖文档格式转换、问答对生成及自动化测试全流程,为AI产品经理提供面试必备的实战方法论与避坑指南,助你精准应对技术深度类问题。

打造全国最全的AI Agent开发知识领域的博客 311

mssql 行列转换

mssql 行列转换

xzfyes的博客 709

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件概述(ArkSIM集成开发环境 (IDE))

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件详述(ArkSIM集成开发环境 (IDE))

918

sql 行转列

SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR ...

小楼听风雨 294

TMC2240 芯片数据手册解读|第十三篇 StallGuard4负载测量(StallGuard4 Load Measurement)

摘要: TMC2240的StallGuard4技术专为StealthChop2静音模式设计,通过SG4_RESULT实时测量电机负载,实现堵转检测、无传感器回零和CoolStep节能。其核心原理基于负载角检测,通过SG4_THRS阈值调节灵敏度,并支持四通道独立测量(SG4_IND_0~3)优化相位平衡。独特功能包括无抖动模式切换补偿(sg_angle_offset),解决StealthChop2与SpreadCycle切换时的电流突变问题。调优时需结合SG4_THRS设定与DIAG验证,确保堵转精准触发。

BackCatK Chen的博客 302

仅使用 Python 创建的 Web 应用程序(前端版本)第03章Streamlit-多页面

接下来,我们将解释多页面切换。Streamlit 没有“多页面”或“页面路由”等功能。另一方面,通过根据用户动作切换要执行的功能,可以使其看起来好像存在“多个页面”。注意:我认为它类似于 SinglePageApplication (SPA)。然而,根据 React、Vue 等中使用的 URL 路径来更改页面的路由很困难。还有一个用于获取查询参数的实验性 API,但如果您确实需要这种功能,我认为认真尝试编写 React 或 Vue 是个好主意。我们来看一个通过按下按钮来切换页面的示例,如下所示。

xianyinsuifeng的博客 1327

[sql server] 行转列问题总结1 - 行转列 .

行转列问题总结 - 1、行转列 (后面不断整理论坛中出现的各类问题)    select name,  sum(case course when 'yuwen' then score else 0 end) as 'yuwen',  sum(case course whe

lary_li的专栏 493

【推荐100个unity插件之2】 DoTween动画插件的安装和使用整合(最全)

摘要:DOTween动画插件使用指南 DOTween是Unity中强大的动画插件,比原生动画更便捷。安装后需进行初始化设置,通过工具菜单生成程序集。主要提供通用方法(DOTween.To)和便捷方法(如transform.DOMove)两种动画实现方式。插件支持丰富的动画设置(循环、缓动等)和事件回调(OnComplete、OnKill)。还提供动画管理功能,包括清除(DOTween.Clear)、完成(DOTween.CompleteAll)和终止(DOTween.KillAll)动画。常用功能涵盖移动、

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

[sql server] 行转列问题总结1 - 行转列

行转列问题总结 - 1、行转列 ---1、最简单的行转列/*问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ----李四 74   84   94张三 74   83   93-------------------*/--测试用IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GOc

永生天地 5万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

sql server行转列问题终极解决

 主要应用case语句来解决行转列的问题行转列问题主要分为两类1)简单的行转列问题:示例表:id  sid           course  result1   2005001 语文     80.02   2005001 数学     90.03   2005001 英语     80.04   2005002 语文     56.05   2005002 数学    

dickc的编程小窝 687

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

sqlserver行转列问题终极解决

 转:http://www.codeol.com/school/database/MSSQL/200808/06-7460.html主要应用case语句来解决行转列的问题行转列问题主要分为两类1)简单的行转列问题:示例表:id  sid           course  result1   2005001 语文     80.02   2005001 数学     90.

814

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SQLServer中的行转列问题

行转列问题主要分为两类。   1)简单的行转列问题:   示例表:   id sid course result   1 2005001 语文 80.0   2 2005001 数学 90.0   3 2005001 英语 80.0   4 2005002 语文 56.0   5 2005002 数学 69.0   6 2005002 英语 8...

ruvuoai的专栏 164

SQL Server pivot 行转列遇到的问题

  前段时间开发系统时,有个功能是动态加载列,于是就使用了SQL Server自带的PIVOT函数进行行转列,开始用的非常溜,效果非常好。但是提交测试后问题来了,测试添加的列名中包含空格,然后就杯具了,功能报错了, 一波未平一波又起,测试添加的数据中包含有以数字开头的,结果又GG了,好沮丧啊!!!!!! 于是开启了查找资料之路,发现只要把列名用方括号[]包起来,问题就解决了,然...

weixin_34283445的博客 337
上一篇: .NET限制程序一次只能运行一个实例
下一篇: 关于C#中Thread.Join()的一点理解
highplayer
博客等级 码龄18年 69粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值