我想请高手帮助写个SQL函数
很容易
只要把数据表单DB中指定字段内容用字符串返回就可以
例如数据表单DB样式:
ID Name
-------------
1 小张
2 小王
3 小张
4 小李
5 小刘
6 小刘我希望能帮我写个函数
返回字段Name内容去掉重复后为   '小张','小王','小李','小刘'

解决方案 »

  1.   

    select distinct name from db
    这样不行吗
      

  2.   

    create function f_str
    returns varchar(1000)
    as
    begin
        declare @s varchar(1000)
        select @s = isnull(@s+''',''','')+[name] from db 
        return @s
    end 
    go
      

  3.   


    declare @re varchar(1000)
    set @re=''
    select 
      @re=@re+[name] 
    from
    (
      select distinct name from DB
    ) tselect @re as [name]
      

  4.   


    select distinct name from 表
    有什么特别的要求吗...
      

  5.   

    2楼没处理对create function f_str
    returns varchar(1000)
    as
    begin
        declare @s varchar(1000)
        select @s = isnull(@s+',''','''')+[name]+'''' from db 
        return @s
    end 
    go
      

  6.   

    去重复create function f_str
    returns varchar(1000)
    as
    begin
        declare @s varchar(1000)
        select @s = isnull(@s+',''','''')+[name]+'''' from db group by [name]
        return @s
    end 
    go
      

  7.   


    if object_id('tb') is not null drop table tb
    create table tb (id int identity(1,1),name nvarchar(256))
    insert tb values('小张')
    insert tb values('小王')
    insert tb values('小张')
    insert tb values('小李')
    insert tb values('小刘')
    insert tb values('小刘')create function f_str()
    returns varchar(1000)
    as
    begin
        declare @s varchar(1000)
    set @s = stuff((select ','+name from (select distinct name from tb) t for xml path('')),1,1,'')
        return @s
    end 
    go
    select dbo.f_str()
    -------------------------------
    小李,小刘,小王,小张(1 row(s) affected)