新聞中心
SQL數(shù)據(jù)庫(kù)中如何將橫向數(shù)據(jù)轉(zhuǎn)換為縱向字段呢?其實(shí)方法很簡(jiǎn)單,我們通過(guò)虛擬表和動(dòng)態(tài)轉(zhuǎn)向就可以實(shí)現(xiàn)。本文就介紹了這一轉(zhuǎn)換的過(guò)程,我們假設(shè)有兩個(gè)表:表1和表2,如下圖所示:

創(chuàng)新互聯(lián)專注于羅源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供羅源營(yíng)銷型網(wǎng)站建設(shè),羅源網(wǎng)站制作、羅源網(wǎng)頁(yè)設(shè)計(jì)、羅源網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造羅源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供羅源網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
表1:
表2:
Sql語(yǔ)句如下:
//Join一下,把數(shù)據(jù)插入虛擬表#T
- SELECT i.SN,i.ItemName,t.Sort,t.t
- INTO #T
- FROM ItemInfo i INNER JOIN
- ItemType t ON i.SN=t.FKSN
- DECLARE @sql nvarchar(1000)
//動(dòng)態(tài)轉(zhuǎn)向
- SET @Sql = 'SELECT ItemName '
- SELECT @Sql = @Sql + ',ISNULL(SUM(CASE Sort WHEN '''+Sort+''' THEN t END),0) ['+Sort+']'
- FROM (SELECT DISTINCT Sort FROM #T) AS A
- SELECT @Sql = @Sql+' FROM [#T] GROUP BY itemName '
//刪除虛擬表
- SET @Sql=@Sql+' DROP TABLE #T '
- EXEC(@sql)
執(zhí)行結(jié)果:
以上就是橫向數(shù)據(jù)轉(zhuǎn)換為縱向字段的過(guò)程,如果您有更好的方法,歡迎您與我們分享,非常感謝您的支持!
文章標(biāo)題:SQL數(shù)據(jù)庫(kù)將橫向數(shù)據(jù)轉(zhuǎn)換為縱向字段
新聞來(lái)源:http://www.5511xx.com/article/cccjiio.html


咨詢
建站咨詢
