Sql 在函数中查询多个值并在1个变量内返回

Sql 在函数中查询多个值并在1个变量内返回,sql,sql-server,tsql,sql-function,Sql,Sql Server,Tsql,Sql Function,我想编写一个查询数据库的函数: SELECT m.title, m.firstname, m.surname FROM contact c LEFT JOIN membership m ON c.contactID=m.contactID 你看,我可以从上面的查询返回许多联系人。我希望将结果返回到函数中的变量中,以便全局使用 我希望函数的结果如下所示: Mr John Test Mrs Jane Smith CREATE FUNCTION your_function (@ID INT) R

我想编写一个查询数据库的函数:

SELECT m.title, m.firstname, m.surname 
FROM contact c
LEFT JOIN membership m
ON c.contactID=m.contactID
你看,我可以从上面的查询返回许多联系人。我希望将结果返回到函数中的变量中,以便全局使用

我希望函数的结果如下所示:

Mr John Test
Mrs Jane Smith
CREATE FUNCTION your_function (@ID INT)
RETURNS VARCHAR(50)
BEGIN
  DECLARE @name_to_return AS VARCHAR(50);
  SELECT  @name_to_return =
             (m.title + ' ' + m.firstname + ' ' + m.surname) 
  FROM contact c
  LEFT JOIN membership m
    ON c.contactID=@ID;
  RETURN @name_to_return ;
END;

我想写一个返回@MemberName的函数,就像John和Jane的例子一样

这就是我迄今为止所做的尝试:

CREATE FUNCTION fnGetMemberNames 
    (   
    @membershipID int,    
    )
RETURNS int
AS

BEGIN
-- Declare the return variable here
DECLARE @MemberNames varchar(300)

SELECT m.title, m.firstname, m.surname 
FROM contact c
LEFT JOIN membership m
ON c.contactID=m.contactID
WHERE membershipID=@membershipID

RETURN @MemberNames

END

必须按如下所示更改select语句,然后创建一个返回此值的函数:

SELECT (m.title + ' ' + m.firstname + ' ' + m.surname) 
FROM contact c
LEFT JOIN membership m
ON c.contactID=m.contactID
上面的示例使用字符串连接,并从多个列中在列标题名称下创建一个列,其中人员的标题后跟空格,然后是人员的名字后跟空格,最后是姓氏

您的函数将如下所示:

Mr John Test
Mrs Jane Smith
CREATE FUNCTION your_function (@ID INT)
RETURNS VARCHAR(50)
BEGIN
  DECLARE @name_to_return AS VARCHAR(50);
  SELECT  @name_to_return =
             (m.title + ' ' + m.firstname + ' ' + m.surname) 
  FROM contact c
  LEFT JOIN membership m
    ON c.contactID=@ID;
  RETURN @name_to_return ;
END;

之所以回答这个问题,是因为@variable被解释为@user指令

@PriceCheaperton-看看Azzi写的: 您需要将返回变量设置为一个值。现在你只是把它声明为一个空的varchar

SELECT @MemberNames = (m.title + ' ' + m.firstname + ' ' + m.surname) FROM 
// the rest of your query here

…就像阿兹说的。

我不能100%确定你的问题是什么。您能否详细说明一下数据库中的行是什么样子的,以及您希望输出的确切内容?谢谢我想写一个返回@MemberName的函数,就像John和Jane的例子一样……啊,看来@Azzi的答案是正确的。您可以将所选项目合并为一个完整项目name@PriceCheaperton直到我给出答案才看到你的编辑。你少了几个“;”您的退货类型不正确。检查我给你的模板。谢谢。但是我如何调用此函数或在查询窗口中使用它?@PriceCheaperton SELECT function rgs。。。结果