复制代码 代码如下:
–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 行列转换实现方法
•
生活家
赞 (0)
沼气泄露的应急处置方法
上一篇
2022年3月21日
林辛言宗景灏车文,求 林辛言宗景灏小说正版 百度云资源,谢谢
下一篇
2022年3月21日