id Mark
1  A01
2  A02
3  A03
4  A04查询行结果为 'A01,A02,A03,A04'请问sql语句该如何写,最好是一条sql语句分数不多了,给的少了点!

解决方案 »

  1.   

    declare @s varchar(1000)
    select @s=isnull(@s,'')+ from tb
    select @s
      

  2.   

    declare @s varchar(100)
    select @s=isnull(@s+',','')+ from tb select @s 
      

  3.   

    declare @s varchar(1000)
    select @s=isnull(@s,'')+ from tb
    select @s
      

  4.   

    如果是sql205及以上版本,可以这样
    ---测试数据---
    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([id] int,[Mark] varchar(3))
    insert [tb]
    select 1,'A01' union all
    select 2,'A02' union all
    select 3,'A03' union all
    select 4,'A04'
     
    ---查询---
    select 
      stuff((select ','+ from tb for xml path('')),1,1,'')
    ---结果-------------------------------
    A01,A02,A03,A04(1 行受影响)
      

  5.   

    declare @s varchar(100)
    select @s=isnull(','+@s,'')+ from tb select @s 
      

  6.   

    可惜是sql2000的,用逗号隔开呢?
      

  7.   

    declare @s varchar(1000)
    select @s=isnull(@s,'')++',' from tb
    select substring(@s,0,len(@s))