sql 2005 資料表行列轉換顯示

2021-06-16 02:02:41 字數 1721 閱讀 6590

1.建立 學生成績表

2.填充 部分資料

3.一般的直接查詢

4.sql 2000 下 行列轉換

5.sql 2005 下 pivot

------------

/*--建立 學生成績表

create table [stusources] (

[stuid] [char] (10) collate chinese_prc_ci_as not null ,

[stuname] [char] (10) collate chinese_prc_ci_as not null ,

[kecheng] [char] (10) collate chinese_prc_ci_as not null ,

[chengji] [float] not null

) on [primary]

/*--填充 部分資料

insert into stusources

select '001','張三','語文',81

union select  '001','張三','數學',71

union select  '001','張三','歷史',71

union select  '002','李四','語文',82

union select  '002','李四','數學',72

union select  '002','李四','歷史',72

/*-- 一般的直接查詢

select * from stusources

-- 結果

stuid  stuname  kecheng  chengji

001        張三       歷史       71.0

001        張三       數學       71.0

001        張三       語文       81.0

002        李四       歷史       72.0

002        李四       數學       72.0

002        李四       語文       82.0

/*-- sql 2000 下 行列轉換

select stuname,

'語文' = sum(case kecheng when '語文' then chengji else 0 end ) ,

'數學' = sum(case kecheng when '數學' then chengji else 0 end ),

'歷史' = sum(case kecheng when '歷史' then chengji else 0 end )

from stusources

group by stuname

-- 結果

stuname  語文 數學 歷史

李四       82.0 72.0 72.0

張三       81.0 71.0 71.0

/* -- sql 2005 下 pivot 

select stuname,[語文] as '語文',

[數學] as '數學',[歷史] as '歷史'

from stusources s

pivot (sum (chengji) for kecheng in ([語文],[數學],[歷史]) )as pvt

*/最近在做資料包表方面的工作,偶爾使用了資料表行列資料轉換的方法。上面的示例是經過驗證的,可以正常使用。

SQL2005資料庫行列轉換

注意 列轉行的方法可能是我獨創的了,呵呵,因為在網上找不到哦,全部是我自己寫的,用到了系統的syscolumns 一 行轉列的方法 先說說行轉列的方法,這個就比較好想了,利用拼sql和case when解決即可 實現目的 name nvarchar 10 null,名稱 course nvarcha...

MSSQL加密資料表 sql2005

建立資料庫主秘鑰 use adb go create master key encryption by password p8ssw0rd go 建立存放加密資料的表 create table dbo.sectable id int identity primary key,data nvarcha...

玩轉 SQL2005資料庫行列轉換

注意 列轉行的方法可能是我獨創的了,呵呵,因為在網上找不到哦,全部是我自己寫的,用到了系統的syscolumns 一 行轉列的方法 先說說行轉列的方法,這個就比較好想了,利用拼sql和case when解決即可 實現目的 1 建立測試用的資料庫 複製 如下 create table rowtest ...