疑难杂症就高手啊

chenstu 2008-02-18 08:14:10
列1 列 2 列3 ....无限列
行1 5
行2 4
行3 5 6
无限行

类似于一个excel网格,我存放的界面是如此,而我将这个界面的数据按纵横列,将该数据保存在一个固定表中的一个字段中,比如A值 列1行1:5/列2行2:4/列2行3:5/列3行3:6
将这界面的所有值全部保存到A值中,并且这么显示。。

而我现在想读取该固定表中的A值,并且排布也 上面的行列排列。有什么方法没呢?

...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenstu 2008-02-19
  • 打赏
  • 举报
回复
非常感谢艺术老鼠。。。
artmouse 2008-02-18
  • 打赏
  • 举报
回复
应该是你要的了

create table #Temp
( ID char(1) not null,
row int not null,
col int not null,
Value int not null
)

insert #Temp values('A',1,1,5)
insert #Temp values('A',2,2,4)
insert #Temp values('A',8,8,6)


select * from #Temp

declare @RowCount int
declare @ColCount int
declare @Row int
declare @Col int
declare @Value char(1)
select @Value='A'
select @Row=1
select @Col=1
select @RowCount=max(row),@ColCount=max(col) from #Temp where ID=@Value

create table #Cube(Row int not null)
while @Row<=@RowCount
begin
insert #Cube values(@Row)
select @Row=@Row+1
end


declare @SQL nvarchar(4000)
select @SQL='select '
while @Col<@ColCount
begin

select @SQL=@SQl+'(case when #Temp.col='+cast(@Col as varchar)+ 'then #Temp.Value end) as COL'+cast(@Col as varchar)+','
select @Col=@Col+1
end
select @SQL=@SQl+'(case when #Temp.col='+cast(@Col as varchar)+ 'then #Temp.Value end) as COL'+cast(@Col as varchar)
select @SQL=@SQl+' from #Cube
left outer join #Temp
on #Cube.Row=#Temp.row
and #Temp.ID='''+@Value+''''

exec(@SQL)


drop table #Temp
drop table #Cube
chenstu 2008-02-18
  • 打赏
  • 举报
回复
发表于:2008-02-18 20:33:083楼 得分:0
把显示转为字符加起来..
如:
rtrim(1)+':'+'aa'


谢谢,可是我是能保存的进去,关键是要读取出来的排列要跟保存进去的排列是一样的。。


如果让你们就按excel一个sheet网格中的所有数据保存到一个固定表的字段中,又要如何读取还原成为原先excel中的sheet的格式呢?
中国风 2008-02-18
  • 打赏
  • 举报
回复
把显示转为字符加起来..
如:
rtrim(1)+':'+'aa'
-狙击手- 2008-02-18
  • 打赏
  • 举报
回复
没看懂
chenstu 2008-02-18
  • 打赏
  • 举报
回复
而且不能使用单个网格来进行填充。。。谢谢大家啦。。。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧