sqlserver2005 行列转换实现方法
时间:2024-01-14 01:34:56
--Create Company Table
Create Table Company
(
ComID varchar(50) primary key,
ComName nvarchar(50) not null,
ComNumber varchar(50) not null,
ComAddress nvarchar(200),
ComTele varchar(50)
)
--Create Product Table
Create Table Product
(
ProductID varchar(50) primary key,
ComID varchar(50) not null,
ProName nvarchar(200) not null,
ProNumber int not null
)
select * from product
--insert into table value
insert Company select('58C0F3FD-7B98-4E74-A1A8-7B144FCB8707','CompanyOne','SH19991028','ShangHai','98765432112')
union all select('768B2E84-0AAB-4653-8F5B-5EF6165204DB','CompanyTwo','SH19991028','ShangHai','98765432113')
union all select('AAE86C36-C82B-421D-BC55-E72368B1DE00','CompanyThree','SH19991028','ShangHai','98765432114')
union all select('C672B359-C800-47DE-9BB4-6D0FC614594C','CompanyFour','SH19991028','ShangHai','98765432115')
union all select('FDBA8B3F-1851-4B73-9A20-A24AEF721AAE','CompanyFive','SH19991028','ShangHai','98765432116')
insert Product sleect('1598A60B-FCFD-4269-864B-CB999E8EA5CA','AAE86C36-C82B-421D-BC55-E72368B1DE00','SqlServer2005',500)
union all select('19D7BF2F-79FD-414E-B648-F105D4AB1EBB' ,'AAE86C36-C82B-421D-BC55-E72368B1DE00', 'Office', 400)
union all select('232B6109-C575-4316-A9BD-0C58F737BE7B' ,'FDBA8B3F-1851-4B73-9A20-A24AEF721AAE', 'SqlServer2005' ,200)
union all select('4F30E12C-7654-40CC-8245-DF1C3453FBC5' ,'768B2E84-0AAB-4653-8F5B-5EF6165204DB', 'Office', 400)
union all select('54C6E4C2-1588-43DF-B22C-0697A1E27DB0' ,'58C0F3FD-7B98-4E74-A1A8-7B144FCB8707', 'Office', 400)
union all select('551EB6CA-3619-4250-98A0-7231BB4C3D58' ,'FDBA8B3F-1851-4B73-9A20-A24AEF721AAE', 'SqlServer2000', 100)
union all select('5BAD331C-B6E4-440E-AC54-52CE13166843' ,'768B2E84-0AAB-4653-8F5B-5EF6165204DB', 'SqlServer2005', 1000)
union all select('5C039C53-2EE4-4D90-BA78-7A20CEC4935C' ,'58C0F3FD-7B98-4E74-A1A8-7B144FCB8707', 'Windows2000', 200)
union all select('673A8683-CD03-40D2-9DB1-1ADA812016E2' ,'58C0F3FD-7B98-4E74-A1A8-7B144FCB8707', 'WindowsXP', 100)
union all select('6B9F771B-46EA-4496-B1DA-F10CB53F6F62' ,'C672B359-C800-47DE-9BB4-6D0FC614594C', 'WindowsXP', 100)
union all select('770089B1-A80A-4F48-8537-E15BD00A99E7' ,'AAE86C36-C82B-421D-BC55-E72368B1DE00', 'WindowsXP', 100)
union all select('92EED635-5C61-468A-B19D-01AAC112D8A3' ,'FDBA8B3F-1851-4B73-9A20-A24AEF721AAE', 'SysBase', 100)
union all select('99195297-F7F0-4DCD-964E-CFB8A162B6D0' ,'768B2E84-0AAB-4653-8F5B-5EF6165204DB', 'Windows2008', 300)
union all select('9EF017C1-F8F0-49BC-A7BD-4DFFB6EA8037' ,'768B2E84-0AAB-4653-8F5B-5EF6165204DB', 'Windows2000', 200)
union all select('A31BCD44-7856-461F-A0FD-407DCA96E8A9' ,'C672B359-C800-47DE-9BB4-6D0FC614594C', 'SqlServer2005', 100)
union all select('A9B52E8F-129F-4113-A473-D4BDD2B3C09C' ,'768B2E84-0AAB-4653-8F5B-5EF6165204DB', 'WindowsXP' ,100)
union all select('AC228CA0-490C-4B3D-866D-154E771B2083' ,'58C0F3FD-7B98-4E74-A1A8-7B144FCB8707', 'Windows2008', 300)
union all select('BD0BA1D3-D1D2-4BC7-9EFD-78B1165060A0' ,'FDBA8B3F-1851-4B73-9A20-A24AEF721AAE', 'DB2', 200)
union all select('CAA71AEA-7130-4AB8-955E-B04EA35A178A' ,'FDBA8B3F-1851-4B73-9A20-A24AEF721AAE', 'Oracle', 100)
--This is Business pack .
--Using this function can using table's row
--to new table's column
declare @strSql varchar(1000)
declare @column varchar(50)
declare @columns varchar(200)
set @columns = ''
/*According to Cursor get new table column*/
declare varchar_cur cursor for
select distinct proname from product order by proname
open varchar_cur
fetch next from varchar_cur into @column
while @@fetch_status = 0
begin
set @columns = @columns + '[' + @column + '],'
fetch next from varchar_cur into @column
end
Close varchar_cur
Deallocate varchar_cur
/*Converted to the ranks of the use of pivot*/
set @columns = stuff(@columns,len(@columns),1,'')
set @strSql = 'select comname,' + @columns
set @strSql = @strSql + ' from '
set @strSql = @strSql + ' ('
set @strSql = @strSql + ' select comname,pronumber,proname from product'
set @strSql = @strSql + ' left join company on product.comid = company.comid '
set @strSql = @strSql + ' ) as temp'
set @strSql = @strSql + ' pivot '
set @strSql = @strSql + ' ( '
set @strSql = @strSql + ' sum(pronumber) '
set @strSql = @strSql + ' for proname in (' + @columns + ') '
set @strSql = @strSql + ' ) as Pivot_table'
exec(@strSql)
标签:sqlserver2005,行列转换
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2021-04-26 08:47:30
![](https://img.aspxhome.com/file/2023/7/95607_0s.jpg)
JavaScript变量中var,let和const的区别
2024-05-09 15:07:24
Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE
2024-01-25 12:58:00
![](https://img.aspxhome.com/file/2023/3/107893_0s.png)
ORACLE 报警日志如何查看?第1/2页
2009-07-02 12:06:00
python实现图像边缘检测
2022-03-17 15:35:11
![](https://img.aspxhome.com/file/2023/9/64339_0s.jpg)
Python实现TCP通信的示例代码
2022-10-03 15:49:17
pytorch快速搭建神经网络_Sequential操作
2023-01-06 01:47:44
![](https://img.aspxhome.com/file/2023/6/124376_0s.jpg)
python+selenium+PhantomJS抓取网页动态加载内容
2021-01-28 15:41:24
为你的有序列表添加个性样式
2009-02-23 13:12:00
![](https://img.aspxhome.com/file/UploadPic/20092/23/ol-overview-60s.gif)
JS异步宏队列微队列原理详解
2024-04-22 13:26:43
![](https://img.aspxhome.com/file/2023/6/135686_0s.jpg)
golang切片扩容规则实现
2024-04-27 15:31:22
![](https://img.aspxhome.com/file/2023/9/134059_0s.jpg)
微信小程序访问mysql数据库流程详解
2024-01-23 10:34:43
![](https://img.aspxhome.com/file/2023/8/136118_0s.png)
IE6终极备忘单——对IE6单独兼容[译]
2010-01-21 18:34:00
python中pymysql的executemany使用方式
2024-01-12 14:35:46
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2022-03-28 19:44:27
![](https://img.aspxhome.com/file/2023/3/112933_0s.jpg)
python线程安全及多进程多线程实现方法详解
2023-08-27 02:01:54
python脚本实现统计日志文件中的ip访问次数代码分享
2021-03-17 08:40:08
Python3的介绍、安装和命令行的认识(推荐)
2022-10-09 22:45:36
![](https://img.aspxhome.com/file/2023/9/117939_0s.png)
了解CSS的查找匹配原理,让CSS更简洁、高效
2010-06-08 13:36:00
Python安装图文教程 Pycharm安装教程
2022-06-19 20:03:05
![](https://img.aspxhome.com/file/2023/4/90434_0s.jpg)