http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6180231

解决方案 »

  1.   

    select 'v1' 点名,时间,v1 值 from 表1
    union all
    select 'v2' 点名,时间,v2 值 from 表1
    union all
    select 'v3' 点名,时间,v3 值 from 表1
    ...
      

  2.   

    先建个新表t1(点名 varchar(20),时间 datetime,值 int)
    declare @a int
    declare @d datetime
    declare @b int
    declare @c varchar(20)
    set @d='2002-2-2'
    set @a=1
    while @a<1024
     begin
      set @c=col_name(object_id(表一),@a
      set @a=@a+1
      set @b=(select @c from 表一)
      insert into t1 values(@c,@d,@b)
     end
      

  3.   

    --查询处理
    declare @s1 varchar(8000),@s2 varchar(8000)
    ,@s3 varchar(8000),@s4 varchar(8000),@s5 varchar(8000)
    ,@i varchar(10)
    select @s1='',@s2='',@s3='',@s4='',@s5='',@i='0'
    select @s1=@s1+',@'+@i+' varchar(8000)'
    ,@s2=@s2+',@'+@i+'=''select 点名='''''
    +name+''''',时间,值=['
    +name+'] from 表1'''
    ,@s3=@s3+'+'' union all ''+@'+@i
    ,@i=cast(@i as int)+1
    from syscolumns 
    where object_id('表1')=id and name<>'时间'select @s1=substring(@s1,2,8000)
    ,@s2=substring(@s2,2,8000)
    ,@s3=substring(@s3,16,8000)exec('declare '+@s1+'
    select '+@s2+'
    exec(''select * from(''+'+@s3+'+'')a order by 点名'')')
    go
      

  4.   

    --测试--测试数据(可以任意增加Vx,不需要更改处理语句)
    create table 表1(时间 varchar(10),v1 decimal(20,2),v2 decimal(20,1),v3 decimal(20,1))
    insert 表1 values('2002-2-2',10.23,2.3,3.4)
    go--查询处理
    declare @s1 varchar(8000),@s2 varchar(8000)
    ,@s3 varchar(8000),@s4 varchar(8000),@s5 varchar(8000)
    ,@i varchar(10)
    select @s1='',@s2='',@s3='',@s4='',@s5='',@i='0'
    select @s1=@s1+',@'+@i+' varchar(8000)'
    ,@s2=@s2+',@'+@i+'=''select 点名='''''
    +name+''''',时间,值=['
    +name+'] from 表1'''
    ,@s3=@s3+'+'' union all ''+@'+@i
    ,@i=cast(@i as int)+1
    from syscolumns 
    where object_id('表1')=id and name<>'时间'select @s1=substring(@s1,2,8000)
    ,@s2=substring(@s2,2,8000)
    ,@s3=substring(@s3,16,8000)exec('declare '+@s1+'
    select '+@s2+'
    exec(''select * from(''+'+@s3+'+'')a order by 点名'')')
    go--删除测试环境
    drop table 表1/*--测试结果点名   时间         值                       
    ---- ---------- ----------------------- 
    v1   2002-2-2   10.23
    v2   2002-2-2   2.30
    v3   2002-2-2   3.40(所影响的行数为 3 行)
    --*/
      

  5.   

    sashilover (等待鲜花的牛粪) 
    鲜花(问题)到了,结贴吧  zjcxc(: 邹建 :)回答这样的问题,已经太多了
    (冒风险建议):在提问题的时候先“搜索”一下,(这样可以省分) :)