需求如下:    有一个表(Test) 字段:ID bigint,Name Nvarchar(200)    现在想建一自定义函数:GetNameList(@IDList Varchar(200))  --参数是ID列表 格式:'1,2,3,4'    Returns 为Nvarchar(500):ID列表对应的Name列表  --格式:'张三,李四,王五,小二'

解决方案 »

  1.   

    create function GetNameList(@IDList varchar(200)) returns varchar(400)
    as
    begin
      declare @s varchar(400)
      set @s = ''
      select @s = @s + Name from Test + ',' 
      where charindex(',' + cast(ID as varchar(10)) + ',', ',' + @IDList + ',') > 0
      if len(@s) > 0
        set @s = left(@s, len(@s) - 1)
      returns(@s)
    end
      

  2.   

    create function GetNameList(@IDList varchar(200)) returns nvarchar(500)
    as
    begin
      declare @s nvarchar(500)
      set @s = ''
      select @s = @s + Name from Test + ',' 
      where charindex(',' + cast(ID as varchar(10)) + ',', ',' + @IDList + ',') > 0
      if len(@s) > 0
        set @s = left(@s, len(@s) - 1)
      returns(@s)
    end
      

  3.   

    create function GetNameList(@IDList Varchar(200))  
    returns varchar(500)
    as
    begin
     declare @sql varchar(1000)
     set @sql=''
     select @sql=@sql+','+Name from test where ID=@IDList
      return @sql
    end
    go