新聞中心
以下的文章主要描述的是SQL Server行轉(zhuǎn)列在什么情況下可能被應(yīng)用的道,你如果對其有興趣的話你就可以點擊以下的文章進行觀看了,以下的文章將會揭開它的神秘面紗,以下的文章將會揭開它的神秘面紗。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、科爾沁右翼中網(wǎng)絡(luò)推廣、小程序制作、科爾沁右翼中網(wǎng)絡(luò)營銷、科爾沁右翼中企業(yè)策劃、科爾沁右翼中品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供科爾沁右翼中建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
有些時候還是要用到SQL Server行轉(zhuǎn)列,比如下面的數(shù)據(jù):
一般的表結(jié)構(gòu)大多會這么設(shè)計,通過關(guān)聯(lián)查詢就可以得出上面的數(shù)據(jù)(客運量就隨便123了,非常時期以防恐怖分子)
不用說,大家也明白要得到下面的數(shù)據(jù):
列數(shù)不多的話一般可以這樣,也是網(wǎng)上比較經(jīng)典的寫法
Select 時間,
sum(case when 線路='1號線' then客運量 end) As '1號線' ,
sum(case when 線路='2號線' then客運量 end) As '2號線' ,
sum(case when 線路='5號線' then客運量 end) As '5號線' ,
......
Fromtable Group By 時間
在SQL Server2005里可以用Pivot關(guān)鍵字來操作,如下:
- declare@Strnvarchar(max)
- set@str='select時間'
- select@str=@str+',['+線路+']'from#Tgroupby線路
- set@str=@str+'FROM(
SELECT時間,客運量,線路
FROM#T)AST
PIVOT(sum(客運量)FOR線路IN
('
select@str=@str+'['+線路+'],'from#Tgroupby線路
set@str=left(@str,Len(@str)-1)
set@str=@str+'))ASthePivot
ORDERBY時間'
declare@T1table(datedatetime,一號線float,二號線float,五號線float,十號線float,十三號線float,八通線float,奧運支線float,機場線float)
- INSERTINTO@T1exec(@str)
- SELECT*FROM@T1
- droptable#T
SQL Server行轉(zhuǎn)列上面的語句如果運行提示不支持pivot關(guān)鍵字的話(一般SQL2000庫導(dǎo)入到SQL2005可能出現(xiàn)這問題),執(zhí)行下這句:EXEC sp_dbcmptlevel 數(shù)據(jù)庫名稱,90
為了方便看,字段改成中文了,其中#T表的數(shù)據(jù)就是最上面***張圖的數(shù)據(jù)(只要基礎(chǔ)數(shù)據(jù)源組織成這樣的就行)
把處理后的數(shù)據(jù)存放在表變量@T1中(當(dāng)然臨時表也行),因為還要和其他表進行關(guān)聯(lián),導(dǎo)出一張大表,如下(表的部分列):
大致就這樣吧
處理的方式應(yīng)該還有其它的,僅供參考。
標(biāo)題名稱:SQLServer行轉(zhuǎn)列的什么情況下被用?
網(wǎng)站地址:http://fisionsoft.com.cn/article/cdipocs.html


咨詢
建站咨詢
