我在存储过程中 通过select 得出以下数据单子名   操作日期
no001     2010-6-1
no002     2010-6-3
no003     2010-6-2我要把查出的记录 组成一个字符串 如(no001 2010-6-1 ,no002 2010-6-3,no003  2010-6-2) 插入另一张表怎么写

解决方案 »

  1.   

    declare @sql varchar(8000)
    select @sql=isnull(@sql+',','')+单子名+' '+操作日期 from [Table] order by 单子名
    select @sql
      

  2.   

    典型的字符串拼接问题。以下为SQLServer2005以后版本的可用方案:DECLARE @string varchar(1000)
    SET @string = STUFF((
    SELECT ',' + 单子名 + ' ' + 操作日期
    FROM 你的表
    ORDER BY 单子名
    FOR XML PATH('')
    ),1,1,'')
    PRINT @string
      

  3.   

    declare @s varchar(8000)
    set @s=''
    select @s=@s+name+',' from syscolumns 
    where id=object_id('表名') 
    order by colid
    print left(@s,len(@s)-1)
      

  4.   


    你好 多谢你的指教 但是我由于举例的问题 下面出现这个问题 现在假设单子名是int 的
    你的方法 会出现以下错误
    在将 varchar 值 '101,' 转换成数据类型 int 时失败。请问怎么解决 谢谢!
      

  5.   

    declare @sql varchar(8000)
    select @sql=isnull(@sql+',','')+ltrim(单子名)+' '+操作日期 from [Table] order by 单子名
    select @sql