实现数据的矩阵转换运算

原创 2004年08月11日 15:08:00

/* ----------------------------------*/
/* 功能 : 实现数据的矩阵转换运算?????? */
/* ----------------------------------*/
if exists(select name from sysobjects where xtype='p' and name='p_jzcaculate')
?? drop procedure p_jzcaculate
go
create procedure p_jzcaculate
@tablename varchar(200),
@filter varchar(400)
as
begin
? set nocount on
? declare @col nvarchar(256)
? declare @makesql nvarchar(4000)
? declare @insertsql nvarchar(4000)
? declare @caculatesql nvarchar(400)
? declare @count int
? declare @i int
? declare @j int
? declare @colid int
? create table #TempTable (colname nvarchar(20))
? select @caculatesql = 'select @count=count(1) from ' + @tablename +@filter
? exec sp_executesql @caculatesql, N'@count int output',@count output
? if @count >=1024
? begin
??? Raiserror('表的行数太多,程序无法运算',16,1)
? end
? else
? begin
??? select @i=0
??? while @count >0
??? begin
????? select @i=@i+1
????? select @makesql = 'alter table #TempTable add col'+convert(varchar(20),@i)+' varchar(40)'
????? exec(@makesql)
????? select @count=@count-1???
??? end
??? declare my_cursor cursor for
??? select name,colid from syscolumns where id=object_id(@tablename) order by colid
??? open my_cursor
??? fetch next from my_cursor into @col,@colid
??? while @@fetch_status = 0
??? begin
????? select @j=count(1) from syscolumns where id=object_id(@tablename)
????? if @colid<@j-1
????? begin
????? select @makesql ='select @insertsql= @insertsql + case
?????? when convert(varchar(400),'+@col+') is null then '''' else convert(varchar(400),'+@col+') end +'','' from ' +@tablename +@filter
????? select @insertsql =N'insert #TempTable values ('''+@col+ ','
????? execute sp_executesql @makesql,N'@insertsql nvarchar(4000) output' ,@insertsql output
????? select @insertsql = replace(left(@insertsql,len(@insertsql)-1),',',''',''') +''')'
?????? --select @insertsql
?????? -- print @makesql
????? --? exec(@makesql)
????? exec(@insertsql)
???? end
??? --? if @@error<>0
??? --? print @@error
????? fetch next from my_cursor into @col,@colid
??? end
??? close my_cursor
??? deallocate my_cursor
??? select * from #TempTable
??? set nocount off
??? drop table #TempTable
? end
end
go

调用:

exec p_jzcaculate 'CABLEINFO_jydz',' '

数据结构与算法(3)——矩阵的加、乘、转置运算实现

定义:由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称 m × n矩阵;在编程语言中可以当做二维数组来处理; 加减法:同型矩阵之间 乘法:两个矩阵的乘...
  • thinkpadshi
  • thinkpadshi
  • 2015年12月07日 14:47
  • 2251

【数据结构】稀疏矩阵的压缩存储和转置算法(C++代码)

稀疏矩阵的压缩存储和转置算法
  • u010834867
  • u010834867
  • 2017年04月06日 15:59
  • 1208

数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)

本文是[数据结构基础系列(7):图]中第4课时[图的邻接矩阵存储结构及算法]和第5课时[图的邻接表存储结构及算法],并为后续内容的实践提供支持。  图的存储结构主要包括邻接矩阵和邻接表,本算法库提供存...
  • sxhelijian
  • sxhelijian
  • 2015年11月02日 20:18
  • 5617

数据结构C语言实现稀疏矩阵的压缩和运算的三元组顺序表表示法

总结:三元组顺序表示法表示稀疏矩阵有一定的局限性 , 特别是在矩阵的乘法的时候,非常复杂。 头文件 #ifndef SYZHEAD_H_INCLUDED #define SYZHEAD_H_IN...
  • llcomeon1_
  • llcomeon1_
  • 2012年07月25日 23:33
  • 1445

第九周 数据结构实现项目--数组和广义表【项目2.2 - 压缩存储的对称矩阵的运算】

/* 1.Copyright(c)2015,烟台大学计算机学院 2. *All rights reserved 3. *文件名称:第九周 数据结构实现项目--数组和广义表【项目2.2 - 压缩存储的对...
  • qingtingdianshui1
  • qingtingdianshui1
  • 2015年11月23日 19:55
  • 264

数据结构值行逻辑链接表实现矩阵运算(参考整理严蔚敏数据结构)

#include #include using namespace std; #define MAXSIZE 100 #define MAXRC 20 typedef int ElemType; ty...
  • hgeternal
  • hgeternal
  • 2014年10月29日 20:03
  • 537

数据结构之三元组顺序表实现稀疏矩阵运算(参考整理严蔚敏数据结构)

#include #include using namespace std; #define MAXSIZE 100 typedef int ElemType; typedef struct{ in...
  • hgeternal
  • hgeternal
  • 2014年10月28日 11:44
  • 745

数据结构稀疏矩阵的运算

  • 2009年07月17日 18:28
  • 156KB
  • 下载

数据结构稀疏矩阵运算

  • 2009年12月18日 10:10
  • 5KB
  • 下载

2015年大二上-数据结构-数组与广义表(2)-4.下三角矩阵的压缩存储及基本运算

/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年12月14日 *...
  • Annpion
  • Annpion
  • 2015年12月16日 18:43
  • 673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现数据的矩阵转换运算
举报原因:
原因补充:

(最多只允许输入30个字)