真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)

準(zhǔn)備工作

成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|企業(yè)網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋發(fā)電機(jī)回收等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身開發(fā)品質(zhì)網(wǎng)站。

創(chuàng)建表

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

插入數(shù)據(jù)

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和聚合函數(shù)進(jìn)行行專列

語法

select column_name,
() 
from database.schema.table
group by column_name

語法解析

column_name

數(shù)據(jù)列列名

aggregation function

聚合函數(shù),常見的有:sum,max,min,avg,count等。

case when expression

case when表達(dá)式

示例

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

示例結(jié)果

轉(zhuǎn)換前

SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)

轉(zhuǎn)換后

SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)

使用PIVOT進(jìn)行行專列

PIVOT通過將表達(dá)式中一列中的唯一值轉(zhuǎn)換為輸出中的多個(gè)列來旋轉(zhuǎn)表值表達(dá)式。并PIVOT在最終輸出中需要的任何剩余列值上運(yùn)行聚合,PIVOT提供比一系列復(fù)雜的SELECT...CASE語句指定的語法更為簡單和可讀的語法,PIVOT執(zhí)行聚合并將可能的多行合并到輸出中的單個(gè)行中。

語法

select , 
  [first pivoted column] as , 
  [second pivoted column] as , 
  ... 
  [last pivoted column] as  
from 
  (

數(shù)據(jù)子表。

表別名。

聚合函數(shù)。

聚合函數(shù)列,用于輸出值列,最終輸出中返回的列(稱為分組列)將對其進(jìn)行分組。

[]

轉(zhuǎn)換列,此列返回的唯一值將成為最終結(jié)果集中的字段。

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

數(shù)據(jù)行中每一行行要轉(zhuǎn)換的列名。

排序規(guī)則。

示例

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

示例結(jié)果

轉(zhuǎn)換前

SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)

轉(zhuǎn)換后

SQL Server基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)

注意事項(xiàng)

1、如果輸出列名不能在表轉(zhuǎn)換列中,則不會執(zhí)行任何計(jì)算。

2、輸出的所有列的列名的數(shù)據(jù)類型必須一致。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對創(chuàng)新互聯(lián)的支持。


本文標(biāo)題:SQLServer基礎(chǔ)之行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)
轉(zhuǎn)載來源:http://weahome.cn/article/pscgch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部