我想从我定义的函数返回一个简单的varchar值:
CREATE FUNCTION getCustomerType (@orderNumber INT)
RETURNS VARCHAR(30)
AS
Return
(
select custtype from Customer c
join order o on o.customerid = c.customerid
where o.orderNumber = @orderNumber
)
GO
select getCustType(1063609)
应该返回订单#1063609的客户类型但未通过
答案 0 :(得分:7)
我会将函数的语法改为:
CREATE FUNCTION dbo.getCustomerType (@orderNumber INT)
RETURNS VARCHAR(30)
AS
begin
declare @custtype varchar(30)
SET @custtype = (select custtype
from dbo.Customer c
join dbo.[order] o
on o.customerid = c.customerid
where o.orderNumber = @orderNumber)
return @custtype
end
然后,当您使用架构(下面的dbo.
)调用该函数时,您将使用:
select dbo.getCustomerType(10636909)
该函数也可以写成(感谢@MartinSmith):
CREATE FUNCTION getCustomerType (@orderNumber INT)
RETURNS VARCHAR(30)
AS
begin
return (select custtype
from dbo.Customer c
join dbo.[order] o
on o.customerid = c.customerid
where o.orderNumber = @orderNumber)
end