在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

SQL Server中怎么将行数据转换为列数据

124次阅读
没有评论

共计 2538 个字符,预计需要花费 7 分钟才能阅读完成。

今天就跟大家聊聊有关 SQL Server 中怎么将行数据转换为列数据,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

准备工作

创建表

use [test1]gocreate table [dbo].[student]( [id] [int] identity(1,1) not null, [name] [nvarchar](50) null, [project] [nvarchar](50) null, [score] [int] null, constraint [pk_student] primary key clustered ( [id] asc)with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on) on [primary]) on [primary]go

插入数据

insert into test1.dbo.student(name,project,score)values(张三 , android , 60), (张三 , ios , 70), (张三 , html5 , 55), (张三 , .net , 100), (李四 , android , 60), (李四 , ios , 75), (李四 , html5 , 90), (李四 , .net , 100

使用 Case When 和聚合函数进行行专列

语法

select column_name, aggregation function (case when expression) from database.schema.tablegroup by column_name

语法解析

column_name

数据列列名

aggregation function

聚合函数,常见的有:sum,max,min,avg,count 等。

case when expression

case when 表达式

示例

select name,max(case project when  android  then score end) as  安卓 ,max(case project when  ios  then score end) as  苹果 ,max(case project when  html5  then score end) as  html5 ,max(case project when  .net  then score end) as  .net from [test1].[dbo].[student]group by name

示例结果

转换前

转换后

使用 PIVOT 进行行专列

PIVOT 通过将表达式中一列中的唯一值转换为输出中的多个列来旋转表值表达式。并 PIVOT 在最终输出中需要的任何剩余列值上运行聚合,PIVOT 提供比一系列复杂的 SELECT…CASE 语句指定的语法更为简单和可读的语法,PIVOT 执行聚合并将可能的多行合并到输出中的单个行中。

语法

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

语法解析

non-pivoted column

非聚合列。

[first pivoted column]

第一列列名。

[second pivoted column]

第二列列名。

[last pivoted column]

最后一列列名。

select query that produces the data

数据子表。

alias for the source query

表别名。

aggregation function

聚合函数。

column being aggregated

聚合函数列,用于输出值列,最终输出中返回的列(称为分组列)将对其进行分组。

[column that contains the values that will become column headers]

转换列,此列返回的唯一值将成为最终结果集中的字段。

[first pivoted column], [second pivoted column], … [last pivoted column]

数据行中每一行行要转换的列名。

optional order by clause

排序规则。

示例

select b.Name,b.[android],b.[ios],b.[html5],b.[.net] from (select Name,Project,Score from [test1].[dbo].[student])as apivot( max(Score) for Project in ([android],[ios],[html5],[.net])) as border by b.name desc

1、如果输出列名不能在表转换列中,则不会执行任何计算。

2、输出的所有列的列名的数据类型必须一致。

看完上述内容,你们对 SQL Server 中怎么将行数据转换为列数据有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2538字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 韩国19福利视频免费观看 | 国产精品亚洲二区在线观看 | 毛片不卡一区二区三区 | 国产91精品久久久久久久 | 精品日韩一区二区三区视频 | 久久国产大片 | 日本视频免费看 | 中文字幕日韩在线一区国内 | 日韩毛片欧美一级a | 免费无码又爽又刺激软件下载直播 | 亚洲自拍在线观看 | 亚洲国产高清在线 | 亚洲色欲色欲www | 最新国产美女肝交视频播放 | 欧美一区二区亚洲 | 看黄网站在线播放 | 亚洲色偷偷综合亚洲av | a级毛片毛片免费观看永久 a级毛片毛片免费很很综合 | 午夜网站在线播放 | 亚洲男人的天堂av手机在线观看 | 一个人看www在线高清免费看 | 美女一级毛片毛片在线播放 | 欧美亚洲国产另类在线观看 | 欧美激情亚洲 | 国产一级做a爰片在线看免费 | 国产农村1级毛片 | 亚洲 中文 欧美 日韩 在线 | 人妻中文字幕av无码专区 | 国产无遮挡色视频免费视频 | 亚洲视屏| 亚洲av精品一区二区三区 | 福利片影院| 免费的黄色的视频 | 99资源在线观看 | 国产高清在线精品免费 | 老外和中国女人毛片免费视频 | 国产欧美一区二区久久 | 国产一区精品在线观看 | 又粗又硬又大又爽免费视频播放 | 两个人看的www高清观看 | 天堂资源在线中文 |