举个例子  有一个人员信息表select * from 奇葩人员信息表结果:
   ID     姓名     年龄
   001   李大傻   78
  002   王大锤    69
  003   张三丰    999现在我想把这个表中人员信息的所有人的姓名 保存到一个变量'@奇葩集合'当中
DECLARE @奇葩集合 类型帮我指出,select @奇葩集合目标结果:
   李大傻,王大锤,张三丰
分不多 题不难 就是我不会 请指教

解决方案 »

  1.   

    DECLARE @X XML
    SET @X=(SELECT [姓名] FROM [奇葩人员信息表] FRO XML AUTO )PRINT CONVERT(VARCHAR(MAX),@X)
      

  2.   

    上面的for 写错了DECLARE @X XML
    SET @X=(SELECT [姓名] FROM [奇葩人员信息表] FOR XML AUTO ) 
    PRINT CONVERT(VARCHAR(MAX),@X)
      

  3.   

    declare @a varchar(max)
    set @a=''
    select @a=@a+','+姓名 from 奇葩人员信息表
    select stuff(@a,1,1,'')
      

  4.   

    if object_id('Userinfo', 'u') is not null
    drop table Userinfo
    Create table Userinfo
    (
     ID Varchar(12) primary key,
     Name varchar(64) not null,
     Age Int not null 
    )
    Insert into Userinfo
    Select  '001' ,  '李大傻',   78
    union
    Select  '002',  '王大锤',    69
    Union
    Select  '003' ,   '张三丰',    999Declare @Names Varchar(128) ;
    with a as
    (
    Select Top 1 (Select Name + ',' From Userinfo for XML path(''))  as Names
    From Userinfo b
    )
    Select @Names = LEFT(Names , Len(Names) -1 ) From a
    print @Names
      

  5.   

    if object_id('Userinfo', 'u') is not null
    drop table Userinfo
    Create table Userinfo
    (
     ID Varchar(12) primary key,
     Name varchar(64) not null,
     Age Int not null 
    )
    Insert into Userinfo
    Select  '001' ,  '李大傻',   78
    union
    Select  '002',  '王大锤',    69
    Union
    Select  '003' ,   '张三丰',    999Declare @Names Varchar(128)Select @Names = ISNULL(@Names + ',', '') + Name From Userinfo
    print @Names
      

  6.   


    恩人啊  为什么Declare @Names Varchar(128) 
    好使 
    Declare @Names char(128)
    不好使   咱俩唠唠