如:
我有一个SQL语句:SELECT StuName from StudentTable where Sex = '男'
这样查询出来的结果肯定不是唯一的:
是这样的:
张三
李四
王五
我的问题是如何让这些查询出来的数据返回一个字符串,这种形式:张三,李四,王五
求教了,不知道该怎么写。

解决方案 »

  1.   

    一、得到数据集 然后循环数据集 拼接一个字符串 得到张山,里斯.....。
    二、直接在SQL 里面得到要求的字符串。
      

  2.   

    动态拼接
    参考http://topic.csdn.net/u/20090527/23/5c5c3013-b94f-4625-acaa-b721541ecdee.html
      

  3.   


    DECLARE sales_rep CURSOR
    FOR
     SELECT StuName from StudentTable where Sex = '男'
        
    DECLARE @Ref_Value nvarchar(50)
    DECLARE @ACT_Value nvarchar(50)
    set @Ref_Value=''
    set @ACT_Value=''
    OPEN sales_rep/*得到第一条记录,如果失败@@FETCH_STATUS返回-1,如果没有记录@@FETCH_STATUS则返回-2*/
    FETCH NEXT FROM sales_rep INTO @Ref_Value
    WHILE (@@FETCH_STATUS <> -1)
    BEGIN
    IF (@@FETCH_STATUS <> -2)
    Begin
    --print '开始'

        set @ACT_Value=@ACT_Value+@Ref_Value+','
      
    End
    /*读取下一条*/
    FETCH NEXT FROM sales_rep INTO @Ref_Value
    END
    /*关闭游标*/
    CLOSE sales_rep
    /*释放游标*/
    DEALLOCATE sales_rep
    select @ACT_Value
      

  4.   

    给你了SQL又问程序里怎么实现,很简单吗写个循环不就好了string username=string.Empty;
    while(read.Read())
    {
    username+=read["StuName"].tostring()+","
    }
    最后拼装完会多个逗号,自己截取掉,基本代码就不帮你写了
      

  5.   

     DataTable dt = new DataTable();
                string str = string.Join(",", (from temp in dt.AsEnumerable() select new { StuName = temp.Field<string>("StuName ") }).ToArray());
               
      

  6.   


    select LEFT(Name,LEN(Name)-1) As Name from (select (select StuName+','  from StudentTable  where Sex ='男' FOR XML PATH('')) As Name) B
      

  7.   

    通过执行SELECT StuName from StudentTable where Sex = '男'得到一个Table,然后再将Table中的数据循环读取出来,就可以了
      

  8.   

    早就给你SQL啦 点参考进去就是SQL撒  还是到最后才看见15楼的SQL?