最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL?Server縱表轉(zhuǎn)橫表的實(shí)現(xiàn)示例

 更新時(shí)間:2023年12月06日 08:35:48   作者:趙潤強(qiáng)  
在使用SQL?Server數(shù)據(jù)庫的過程中我們經(jīng)常會(huì)遇到需要將查詢結(jié)果從縱表轉(zhuǎn)成橫表的問題,本文就來介紹一下SQL?Server縱表轉(zhuǎn)橫表示例,感興趣的可以了解一下

概述

在使用SQL Server數(shù)據(jù)庫的過程中我們經(jīng)常會(huì)遇到需要將查詢結(jié)果從縱表轉(zhuǎn)成橫表的問題,下面將用一個(gè)簡單的實(shí)例說明如何使用動(dòng)態(tài)查詢語句來解決這一問題。

先創(chuàng)建一個(gè)表并插入數(shù)據(jù)如下(縱表):

create table StudentScores 
(
StudentName varchar(16),
Subject varchar(16),
Score  smallint
)

insert into StudentScores
values('張三','語文',85)
insert into StudentScores
values('張三','數(shù)學(xué)',90)
insert into StudentScores
values('張三','英語',86)
insert into StudentScores
values('李四','語文',92)
insert into StudentScores
values('李四','數(shù)學(xué)',87)
insert into StudentScores
values('李四','英語',90)

此時(shí) select * from StudentScores 直接查詢結(jié)果如下:

用需要生成橫表字段名的列數(shù)據(jù)創(chuàng)建一個(gè)臨時(shí)表并去重:

select distinct Subject as Sub into #temp from StudentScores

最后使用如下語句轉(zhuǎn)成橫表:

 declare @SQL varchar(max)  --定義變量@SQL
 --拼接查詢語句
 set @SQL='select StudentName,'
select @SQL=@SQL+'sum(case when Subject='''+Sub+''' then Score else 0 end) as '+Sub+' , ' from  #temp
select @SQL= LEFT(@SQL, len(@SQL)-1)
set @SQL=@SQL+ 'from StudentScores group by StudentName'
--執(zhí)行查詢
exec(@SQL)

查詢結(jié)果如下:

在SQL Server中有一個(gè)內(nèi)置的函數(shù)PIVOT也能夠?qū)崿F(xiàn)同樣的查詢效果。詳細(xì)的使用方法請(qǐng)查看SQL Server行列轉(zhuǎn)換

到此這篇關(guān)于SQL Server縱表轉(zhuǎn)橫表的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SQL Server縱表轉(zhuǎn)橫表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

长岭县| 鄂温| 巴里| 卢龙县| 定远县| 韩城市| 海安县| 额尔古纳市| 嵊州市| 新龙县| 湾仔区| 庆安县| 临清市| 获嘉县| 揭阳市| 中西区| 荃湾区| 罗甸县| 南澳县| 桐柏县| 石渠县| 资源县| 响水县| 永康市| 夏河县| 旺苍县| 涿州市| 会宁县| 本溪| 黄冈市| 太康县| 三都| 克什克腾旗| 穆棱市| 安阳县| 永和县| 项城市| 定西市| 大港区| 望都县| 乐东|