行列轉換 交叉表 (轉)
總結了一些有代表性的貼子,/Expert/topic/2440/2440306.?temp=.6941645">具體見
1: 列轉為行:
eg1:
Create table test (name char(10),km char(10),cj int)
go
insert test values('張三','語文',80)
insert test values('張三','數學',86)
insert test values('張三','英語',75)
insert test values('李四','語文',78)
insert test values('李四','數學',85)
insert test values('李四','英語',78)
想變成
姓名 語文 數學 英語
張三 80 86 75
李四 78 85 78
declare @ varchar(8000)
set @sql = ' name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
exec(@sql)
drop table test
eg2:
有表A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1
或者是從表B變成A(不要用遊標)
以前有相似的列子,現在找不到了,幫幫忙!
--1.建立一個合併的
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
--自定義函式得到結果
select distinct id,o.fmerg(id) from 表A
2:
/*********** 行轉列 *****************/
測試:
create table t1 (a int,b int,c int,d int,e int,f int,g int,h int)
insert t1 values(15, 9, 1, 0, 1, 2, 2, 0)
declare @ varchar(8000)
set @=''
select @=@+rtrim(name)+' from t1 union all select ' from sylumns where id=_id('t1')
set @=left(@,len(@)-len(' from t1 union all select '))
--print @
exec('select '+@+' from t1')
a
-----------
15
9
1
0
1
2
2
0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963136/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql行列轉換詳解MySql
- 記錄一個行列轉換
- Oracle行列轉換及pivot子句的用法Oracle
- Spark實現行列轉換pivot和unpivotSpark
- 在報表中錄入資料時如何實現行列轉換
- Restcloud ETl實踐之資料行列轉換RESTCloud
- 使用vue實現行列轉換的一種方法。Vue
- 例項詳解構建數倉中的行列轉換
- excel列轉行怎麼做 excel如何轉置行列Excel
- echarts圖表樣式轉換Echarts
- 報表如何實現行列互換效果?
- SQL 如何實現動態的行列轉置SQL
- pdf轉換成word,免費轉換
- heic格式轉換jpg工具——轉易俠heic轉換器
- js顯式轉換和隱式轉換JS
- AD模數轉換&DA數模轉換
- 非分割槽錶轉換成分割槽表
- 轉換流
- GUID轉換GUI
- iOS引用轉換:Foundation與Core Foundation物件互相轉換(__CFString轉NSString,void *轉id等等)iOS物件
- 圖片格式怎麼轉換,如何轉換jpg
- PDF轉換CAD圖紙,如何快速轉換呢?
- unix時間轉換為datetimedatetime轉換為unixtime
- 用於日期轉換的訊息轉換器
- 圖片轉換成文字怎麼轉?一鍵轉換看這裡
- 將表結構轉換成實體欄位
- Oracle實驗(02):轉換 & 轉譯Oracle
- axmath 轉換latex 再轉 word公式公式
- pdf轉word如何線上轉換?
- 圖片格式轉換,JPG圖片轉換成PDF
- Linux 轉換換行符Linux
- 顏色轉換
- Java —— 轉換流Java
- clang 轉換版本
- matlab版本轉換Matlab
- js轉換/Date(........)/JS
- Oracle轉換PostgresOracle
- 溫度轉換
- XSLT-轉換