假如select name from student 的结果有两个名字,现在我想将这两个名字连成一个字符串(最好中间有个逗号),是不没有这样的函数啊

解决方案 »

  1.   

    declare @name varchar(8000)
    select @name=isnull(@name+',','')+name from syscolumns where id=object_id('sysobjects')
    select @name
    /*
    base_schema_ver,cache,category,crdate,deltrig,ftcatid,id,indexdel,info,instrig,name,parent_obj,refdate,replinfo,schema_ver,seltrig,stats_schema_ver,status,sysstat,type,uid,updtrig,userstat,version,xtype
    */
      

  2.   

    不用函数吧。select 语句中直接实现
    select 字段一 + ',' + 字段二
    from 表名
      

  3.   

    declare @col as nvarchar(1024)
    set @col=''
    select @col = @col+','+[a].[Column] 
    from(select name as [Column] from student)as a 
    select  right(@col,len(@col)-1) as nameList
      

  4.   

    declare @col as nvarchar(1024)
    set @col=''
    select @col = @col+','+ name  from student  --递归
    select  right(@col,len(@col)-1) as nameList递归Select变量在做动态交叉表中经常用到的
      

  5.   

    declare @a varchar(8000)
    select @a=isnull(@a+',','')+[name] from student 
    select @a
      

  6.   

    select name1+name2 as name from student 
      

  7.   

    select a1+','+a2 as name from tb 
      

  8.   


    declare @stuTb table (uid  int , stuName varchar(50))Insert Into @stuTb 
    select 1,'张三'
    union 
    select 2,'李四'declare @a varchar(8000)
    select @a=isnull(@a+',','')+stuName from @stuTb 
    select @a张三,李四
    (所影响的行数为 1 行)
      

  9.   

    两个 ISNULL() 相加是最可行的方案。