declare @a table(id int)
insert @a(id)
values(1)
insert @a(id)
values(2)
insert @a(id)
values(3)select * from @a
declare @num int
set @num=(select count(id) from @a)
DECLARE @counter smallint
SET @counter = 1
declare @id varchar(10)
declare @Str varchar(100)
set @Str=''
WHILE @counter < @num+1
   BEGIN set @id=(select id from @a where id=@counter)
--select @id
       set @Str=@Str+@id+'~'      SET NOCOUNT ON
      SET @counter = @counter + 1
      SET NOCOUNT OFF
   END
select @Str

解决方案 »

  1.   

    不用那么复杂吧?!Declare @S Varchar(100)
    Set @S=''
    Select @S=@S+'~'+Rtrim(id) from TEST Order By id
    Select Stuff(@S,1,1,'')
      

  2.   

    --建立测试环境
    Create table TEST(id Int)
    Insert TEST Values(1)
    Insert TEST Values(2)
    Insert TEST Values(3)
    GO
    --测试
    Declare @S Varchar(100)
    Set @S=''
    Select @S=@S+'~'+Rtrim(id) from TEST Order By id
    Select Stuff(@S,1,1,'')
    --删除测试环境
    Drop table TEST
    --结果
    /*
    1~2~3
    */
      

  3.   

    Declare @S Varchar(100)
    Set @S=''
    Select @S=@S+Rtrim(id)+'~' from TEST Order By id
    Select @S