好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQL Server基礎之行數據轉換為列數據

SQL Server基礎之行數據轉換為列數據

熱門標簽:武漢長沙外呼系統方法和技巧 優質地圖標注 京華物流公司地圖標注 奧威地圖標注多個地方 千呼電銷機器人價格 智能語音外呼系統選哪家 外呼系統電銷專用 怎樣在地圖上標注路線圖標 百度地圖標注不同路線

準備工作

創建表

use [test1]
go

create 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.table
group 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 a
pivot
(
  max(Score)
  for Project in ([android],[ios],[html5],[.net])
) 
as b
order by b.name desc

示例結果

轉換前

轉換后

注意事項

1、如果輸出列名不能在表轉換列中,則不會執行任何計算。

2、輸出的所有列的列名的數據類型必須一致。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • SQL Server將一列的多行內容拼接成一行的實現方法
  • SQLServer行轉列實現思路記錄
  • Sql Server 2000 行轉列的實現(橫排)
  • sqlserver2005 行列轉換實現方法
  • sqlserver下將數據庫記錄的列記錄轉換成行記錄的方法
  • sqlserver 行列互轉實現小結
  • SQLServer行列互轉實現思路(聚合函數)
  • SQL Server行轉列的方法解析

標簽:威海 防疫戰設 宿州 來賓 天水 銅仁 七臺河 益陽

巨人網絡通訊聲明:本文標題《SQL Server基礎之行數據轉換為列數據》,本文關鍵詞  SQL,Server,基礎,之行,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server基礎之行數據轉換為列數據》相關的同類信息!
  • 本頁收集關于SQL Server基礎之行數據轉換為列數據的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产三级一区二区| 同城可约全国空降入口| 亚洲男同帅Gay片在线观软件| 免费做爰全过程叫床| 五级床片免费观看视频| 国产AV精品国语对白河南小伙| 百日蔷薇全部视频| 色接久久| chinesevideos性自拍杨幂| 4K岛国AV人妻HD| 国产精品欧美在线不卡| 女人脱裤让男人桶爽免费| 啊啊啊啊啊啊好大 | 人妻含泪握住粗大老乞丐| 女领居夹得太紧好爽A片| 午夜视频在线观看按摩女| 大伊香蕉精品一区在线观看| ?国产精品嫩草影院CCm| 亚洲精品456| 婷婷人人爽人人做人人添| 美女跪下吃J8吞精视频| 免费吻胸抓胸激烈视频嗯…啊| 妹子被揉胸上头视频| 伊人成人在线观看| 国产69精品9999XXXX| 亚洲国产精品久久久天堂麻豆 | 丰满美妇被调教性沉沦| 精品国产一级A片黄毛网站| 嫩草成人永久免费观看| 91肥臀大屁股熟女露脸在线| 999精品无码一区二区三区| 20201精品极品国产色在线| 和黑帮大佬的365| 黑人女人猛交一二三区A片| 无人在线观看免费高清电视剧狂飙 | 男女OOXX一上一下抽搐123| 偷窥孔动漫| 成都私人情侣免费看电视剧的软件| 免费看香港一级毛片| 国产日韩电影| 《朋友的未婚妻》hd中字在线|