Sql server 返回函数中的表行

Sql server 返回函数中的表行,sql-server,tsql,Sql Server,Tsql,我不熟悉语法。请帮助。值得猜测的是,参数@ZIPCode将作为@ZIPCode进入查询 CREATE FUNCTION dbo.GetCustomers ( @ZIPCode VARCHAR(255) ) RETURNS TABLE AS BEGIN SELECT * dbo.GetCustomers WHERE dbo.GetCustomers.ZIPCODE = ZIPCode RETURN END 您的第一次尝试WHERE dbo.Customers.ZIPCODE=ZIPCOD

我不熟悉语法。请帮助。

值得猜测的是,参数
@ZIPCode
将作为
@ZIPCode
进入查询

CREATE FUNCTION dbo.GetCustomers
(
  @ZIPCode VARCHAR(255)
)
RETURNS TABLE

AS BEGIN
SELECT * dbo.GetCustomers
WHERE dbo.GetCustomers.ZIPCODE = ZIPCode 
RETURN
END
您的第一次尝试
WHERE dbo.Customers.ZIPCODE=ZIPCODE
WHERE dbo.Customers.ZIPCODE=dbo.CustomersZIPCode
相同。也就是说,返回所有行

CREATE FUNCTION dbo.GetCustomers
(
  @ZIPCode VARCHAR(255)
)
RETURNS TABLE

AS
RETURN (
    SELECT * FROM dbo.Customers
    WHERE dbo.Customers.ZIPCODE = @ZIPCode
    )
END

当一个普通的存储过程可以做到这一点时,似乎没有任何理由创建一个函数来实现这一点

CREATE FUNCTION dbo.GetCustomers ( 
@ZIPCode VARCHAR(255) 
) 
RETURNS TABLE  
AS return (SELECT * FROM dbo.Customers WHERE dbo.Customers.ZIPCODE = @ZIPCode) 

指出您所更改的内容会很有帮助,例如,
ZIPCode
->
@ZIPCode
@gbr im正在创建正则表达式搜索模式,并将其与之进行比较。但我唯一的问题是重新运行它。我将在我的代码中更改它。给函数一个主体是有原因的。有一些代码。我只需要知道如何将这样的东西作为dbo返回表。Customers@noname:这是一个“内联表值函数”,只需要返回。没有开始+结束正文。@gbn谢谢回复,但正文中有代码。在将ZIPCode变量与dbo.Customers进行比较之前,我对它做了一些处理。你在我的帖子里看不到。@noname:我们已经回答了你提出的问题。没错,没有明显的理由这么做。
CREATE PROCEDURE GetCustomers
@ZIPCode VARCHAR(255)

AS

SELECT * FROM dbo.Customers
WHERE Customers.ZIPCODE = @ZIPCode