字段   A
       1
       2
       3要变成 1    2    3   用SQL实现,不用存储过程等,谢谢

解决方案 »

  1.   

    declare @s varchar(8000)
    select @s=IsNULL(@s,'')+A from 表
      

  2.   

    declare @s varchar(8000)
    select @s=IsNULL(@s,'')+cast(A as varchar) from 表Print @s
      

  3.   

    WangZWang(先来) ( ) 信誉:100  2006-06-12 11:52:00  得分: 0  
     
     
       declare @s varchar(8000)
    select @s=IsNULL(@s,'')+cast(A as varchar) from 表Print @s  
     他要的应该是显示成多个列吧, 而不是放在一个字段吧. 如果确实这样,那么递规查询变量当然很方便了.
      

  4.   

    选出数据行之后用游标写循环动态产生列.或者选出数据行之后,再给连续的唯一的标识( identity(int) )写入临时表或表变量,再写循环, 用连续和唯一的标识就是为了避免使用游标,而且这个标识来确定当前记录行,用作指针标记用.
      

  5.   

    放到多个列中去?? 其实这个可以在前台程序来实现, declare @s varchar(8000)
     select @s=IsNULL(@s,'列')+cast(A as varchar)+'列' from 表比如上面这种方法就可以知道每一列的值,然后在前台程序进行加工一下即可实现功能。
      

  6.   

    --或于值为列名来实现,如:
    declare @t table(A varchar(8))
    Insert into @t      
    select  1
    union select   2
    union select   3 Declare @s varchar(8000) 
     select @s=IsNULL(@s,'')+','+A+' as [列'+A+']' from @t
     set @s='Select '+stuff(@s,1,1,'') 
     exec(@s)--结果
    /*
    列1  列2  列3
    --------------
    1    2     3
    */