Sql Server 2000 行轉(zhuǎn)列的實現(xiàn)(橫排)
更新時間:2008年11月08日 20:15:40 作者:
在一些統(tǒng)計報表中,常常會用到將行結果用列形式展現(xiàn)。我們這里用一個常見的學生各門課程的成績報表,來實際展示實現(xiàn)方法。
我們用到的表結構如下:
三張表的關系為:
現(xiàn)有的測試數(shù)據(jù)為:
我們需要的結果是:
復制代碼 代碼如下:
DECLARE @strSQL VARCHAR(8000)
SET @strSQL = 'SELECT t.STUNAME [姓名]'
SELECT @strSQL = @strSQL + ',SUM(CASE s.SNAME WHEN ''' + SNAME + ''' THEN g.[Score] END) [' + SNAME + ']' FROM (SELECT SNAME FROM [Subject]) AS tmp
SELECT @strSQL = @strSQL + ' FROM [Score] g,[Subject] s, [Student] t WHERE g.SID=s.SID AND g.STUID = t.STUID GROUP BY t.STUID, t.STUNAME'
EXEC(@strSQL)
SQL SERVER 2005 中,已經(jīng)有實現(xiàn)此功能的內(nèi)置方法了。
相關文章
如何把sqlserver數(shù)據(jù)遷移到mysql數(shù)據(jù)庫及需要注意事項
由于項目起初用的是sqlserver數(shù)據(jù)庫,后來改用了mysql數(shù)據(jù)庫,那么如何把sqlserver遷移mysql呢?對sqlserver數(shù)據(jù)庫遷移感興趣的朋友可以參考下本篇文章2015-10-10SqlServer實現(xiàn)類似Oracle的before觸發(fā)器示例
本節(jié)主要介紹了SqlServer如何實現(xiàn)類似Oracle的before觸發(fā)器,需要的朋友可以參考下2014-08-08SQLSERVER收集語句運行的統(tǒng)計信息并進行分析
例如語句的編譯時間、執(zhí)行時間、做了多少次磁盤讀等,如果DBA能夠把問題語句單獨測試運行,可以在運行前打開下面這三個開關,收集語句運行的統(tǒng)計信息。這些信息對分析問題很有價值,感興趣的朋友可以了解下2013-01-01SQL Server中刪除重復數(shù)據(jù)的幾個方法
數(shù)據(jù)庫的使用過程中由于程序方面的問題有時候會碰到重復數(shù)據(jù),重復數(shù)據(jù)導致了數(shù)據(jù)庫部分設置不能正確設置2013-05-05數(shù)據(jù)庫Left join , Right Join, Inner Join 的相關內(nèi)容,非常實用
Left join , Right Join, Inner Join 的相關內(nèi)容,非常實用2009-07-07一個函數(shù)解決SQLServer中bigint 轉(zhuǎn) int帶符號時報錯問題
這篇文章主要介紹了解決SQLServer中bigint 轉(zhuǎn) int帶符號時報錯問題的函數(shù),需要的朋友可以參考下2014-08-08