自定义函数
declare @String varchar(100)
select @string=''
select @string=@string+','+other from B where Id=@intputID
Return @string

解决方案 »

  1.   


    create function getstr(@id Nchar(10))
    returns Nvarchar(2000)
    as 
    begin
    declare @str Nvarchar(2000)
    set @str=N''
    select @str=@str+N','+rtrim(other) from b
    where id=@id
    set @str=right(@str,len(@str)-1)
    return @str
    end
    GO调用:
    select a.id,a.name,dbo.getstr(a.id) as other from a
      

  2.   

    我在创建函数时出错。这应该属于创建函数中的哪一种。inner,table,scale。出现下面错误:
    服务器: 消息 170,级别 15,状态 1,行 1
    Line 1: Incorrect syntax near 'function'.
    服务器: 消息 137,级别 15,状态 1,行 8
    Must declare the variable '@id'.
    服务器: 消息 178,级别 15,状态 1,行 10
    A RETURN statement with a return status can only be used in a stored procedure.这是什么原因呢?
      

  3.   

    你不是用sql server 2k?
      

  4.   

    那你找一下n_chow发的贴,由一个专门解决这个问题的。
      

  5.   

    create function getstr(@id nvarchar(30))
    returns nvarchar(2000)
    as 
    begin
      declare @str nvarchar(2000)
      set @str=N''
      select @str=@str+N','+rtrim(other) from b where id=@id
    -----------------------------------------^^^^改为你的表呀!
      set @str=right(@str,len(@str)-1)
      return @str
    end
      

  6.   

    用外连接可以吗
    select a.id,a.name,b.other from a left join b on a.id=b.id
      

  7.   

    你要注意n型,
    请把你的create贴出
      

  8.   

    create function getstr(@id Nchar(100))
    returns Nvarchar(2000)
    as 
    begin
    declare @str Nvarchar(2000)
    set @str=N''
    select @str=@str+N','+rtrim(xm) from l_Zzzyjsryylb  where jmsbh=@id
    set @str=right(@str,len(@str)-1)
    return @str
    end我把这些直接放在查询分析器中,出错。
    服务器: 消息 170,级别 15,状态 1,行 1
    Line 1: Incorrect syntax near 'function'.
    服务器: 消息 137,级别 15,状态 1,行 7
    Must declare the variable '@id'.
    服务器: 消息 178,级别 15,状态 1,行 9
    A RETURN statement with a return status can only be used in a stored procedure.
      

  9.   

    哦,我用的是英文的sql server2000,正版的,我连接到一个盗版的中文sql server2000就可以了,为什么?创建函数跟创建存储过程有什么不同吗?他们哪个速度快些呢?
      

  10.   

    我在中文sql server2000试过
    可以呀