返回顶部
首页 > 资讯 > 数据库 >sql语句如何实现行转列
  • 654
分享到

sql语句如何实现行转列

2024-04-02 19:04:59 654人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关sql语句如何实现行转列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查

这篇文章将为大家详细讲解有关sql语句如何实现行转列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查询出来的会是这样的,但这并不能达到想要的效果,所以要在查询的时候做一下处理,下面话不多说了,来一起看看详细的介绍。

sql语句如何实现行转列         

CREATE TABLE TestTable(
 [Id] [int] IDENTITY(1,1) NOT NULL,
 [UserName] [nvarchar](50) NULL,
 [Subject] [nvarchar](50) NULL,
 [Source] [numeric](18, 0) NULL
) ON [PRIMARY]
Go
INSERT INTO TestTable ([UserName],[Subject],[Source]) 
 SELECT N'张三',N'语文',60 UNION ALL
 SELECT N'李四',N'数学',70 UNioN ALL
 SELECT N'王五',N'英语',80 UNION ALL
 SELECT N'王五',N'数学',75 UNION ALL
 SELECT N'王五',N'语文',57 UNION ALL
 SELECT N'李四',N'语文',80 UNION ALL
 SELECT N'张三',N'英语',100
GO

这里我用了三种方法来实现行转列第一种:静态行转列

select UserName 姓名,
sum(case Subject when '语文' then Source else 0 end) 语文,sum(case Subject when '数学' then Source else 0 end) 数学,
sum(case Subject when '英语' then Source else 0 end) 英语 from TestTable group by UserName

用povit行转列

select * from 
(select UserName,Subject,Source from TestTable) testpivot(sum(Source) for Subject in(语文,数学,英语)
) pvt

用存储过程行转列

alter proc pro_test
@userImages varchar(200),
@Subject varchar(20),
@Subject1 varchar(200),
@TableName varchar(50)
as
 declare @sql varchar(max)='select * from (select '+@userImages+' from'+@TableName+') tab
pivot
(
sum('+@Subject+') for Subject('+@Subject1+')
) pvt'
exec (@sql)
go
exec pro_test 'UserName,Subject,Source',
'TestTable',
'Subject',
'语文,数学,英语'

它们的效果都是这样的

sql语句如何实现行转列

以上三种方式实现行转列,我们可以根据自己的需求采用不同的方法

关于“sql语句如何实现行转列”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: sql语句如何实现行转列

本文链接: https://lsjlt.com/news/55843.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • sql语句如何实现行转列
    这篇文章将为大家详细讲解有关sql语句如何实现行转列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查...
    99+
    2024-04-02
  • SQL如何实现行转列和列转行
    这篇文章给大家分享的是有关SQL如何实现行转列和列转行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。行列互转,是一个经常遇到的需求。实现的方法,有case when方式和2005...
    99+
    2024-04-02
  • SQL行转列合并的语句
    这篇文章主要讲解了“SQL行转列合并的语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL行转列合并的语句”吧!   SQL> cr...
    99+
    2024-04-02
  • sql中如何实现列转行
    sql中实现列转行的操作有两种方式:使用 union 操作符通过垂直合并查询结果实现列转行。使用 pivot 函数将列数据转换为行数据,其中 pivot 函数的语法为:pivo...
    99+
    2024-06-06
    聚合函数
  • mysql行转列的sql语句怎么写
    在MySQL中,可以使用以下方式将行转列: 使用CASE语句和聚合函数: SELECT id, MAX(CASE...
    99+
    2024-04-09
    mysql
  • SQL 如何实现动态的行列转置
    Oracle 和新版 Mysql 里有 pivot 实现行列转置,但实际处理数据时,会碰到一些更复杂的转置情况,pivot 也搞不定,比如: 想转置成: 这个难点在于事先不知道有多少种收入来源,而且每个人的收入来源种类各不相同。...
    99+
    2015-04-20
    SQL 如何实现动态的行列转置
  • SQL中如何实现行转列Pivot函数
    这篇文章将为大家详细讲解有关SQL中如何实现行转列Pivot函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来创建一个DailyIncome 表create ...
    99+
    2024-04-02
  • 怎么使用SQL语句将行和列进行转换
    小编给大家分享一下怎么使用SQL语句将行和列进行转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  如何使用SQL语句将行和列...
    99+
    2024-04-02
  • 怎么在SQL中实现行转列和列转行
    怎么在SQL中实现行转列和列转行?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。行列转换就是如下图所示两种展示形式的互相转换行转列假如我们有...
    99+
    2024-04-02
  • 如何实现SQL语句分页
    这篇文章主要讲解了“如何实现SQL语句分页”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现SQL语句分页”吧! 1.如果...
    99+
    2024-04-02
  • 如何实现mysql行转列
    下面一起来了解下如何实现mysql行转列,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何实现mysql行转列这篇短内容是你想要的。 原始数据如下:mysql> select ...
    99+
    2024-04-02
  • plsql如何运行sql语句
    在PL/SQL中运行SQL语句有多种方式:1. 使用SQLPlus:在SQLPlus命令行界面中,输入SQL语句并以分号(;)结尾,...
    99+
    2023-10-18
    plsql sql
  • [转] Oracle sql语句执行顺序
    sql语法的分析是从右到左 一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3)视图转换,将涉及视图的查询语句...
    99+
    2015-06-02
    [转] Oracle sql语句执行顺序 数据库入门 数据库基础教程
  • 通过sql实现动态行转列
    上一章我们讲了固定行转列,本章我们就将一下怎么动态实现行转列的。因为有时候需要行专列的值有成千上万条,不可能再用固定行转列的方法,否则你一定会崩溃掉的。好了,废话不多说,开始吧!常见一张表tmp_test,...
    99+
    2024-04-02
  • SQL Server如何使用PIVOT与unPIVOT实现行列转换
    这篇“SQL Server如何使用PIVOT与unPIVOT实现行列转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2023-06-30
  • navicat表如何执行sql语句
    小编给大家分享一下navicat表如何执行sql语句,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、首先,打开navicat,选择要操作的数据库。2、接着点击查询,这里有两个查询,随便点...
    99+
    2024-04-02
  • mdb中如何执行sql语句
    在MDB(Microsoft Access数据库)中执行SQL语句,可以通过以下步骤完成:1. 打开Microsoft Access...
    99+
    2023-10-12
    mdb sql
  • 如何进行SQL中PIVOT行列转换
    这篇文章主要讲解了“如何进行SQL中PIVOT行列转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何进行SQL中PIVOT行列转换”吧!PIVOT通过将...
    99+
    2024-04-02
  • C# DataGridView行列转换如何实现
    这篇文章主要讲解了“C# DataGridView行列转换如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C# DataGridView行列转换如何实现”吧!初始表...
    99+
    2023-07-05
  • Entity Framework中如何执行sql语句
    这篇文章主要介绍Entity Framework中如何执行sql语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、为什么要在EF中执行SQL语句使用EF操作数据库,可以避免写SQL语句,完成使用Linq...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作