【发布时间】:2013-12-09 11:37:18
【问题描述】:
我正在执行一项任务,但遇到了一些麻烦。这是作业:
此分配将使用北风数据库和雇员表。
这将是一个用户定义的表函数。
创建一个名为 Employee_Name 的用户定义函数。将员工 ID 作为参数传递。
返回其 ID 与传递给用户定义函数的 id 匹配的员工的名字、姓氏和电话号码。
创建一个使用该函数并返回 id 为 5 的员工信息的查询。
到目前为止,这是我的解决方案:
CREATE FUNCTION dbo.Employee_Name(@employId int)
RETURNS TABLE
AS
RETURN(
SELECT FirstName,LastName,HomePhone
FROM dbo.Employees
WHERE EmployeeID = @employId
GROUP BY EmployeeID
)
SELECT * FROM dbo.Employee_Name(5);
GO
这是我收到的错误:
Msg 156, Level 15, State 1, Procedure Employee_Name, Line 11
Incorrect syntax near the keyword 'SELECT'.
【问题讨论】:
-
只是一个猜测,但您可能必须在函数中创建一个临时表,填充它,然后返回它。
-
Northwind 是 Microsoft SQL Server 的示例。 MySQL 标签是否适合这个问题?
-
@DanBracuk 我以为你不能在 UDF 中使用临时表?
标签: sql sql-server function tsql user-defined-functions