在 SQL 中,我创建了一个表函数,该函数在其定义中包含一个名为 @customerid 的变量。因此,select语句需要包含(@customerid)。
在表函数上执行 select 语句时,我通常会声明变量值,如下所示。然而,这限制了我只能接触一位客户。然而,我想返回所有客户的表函数数据。
DECLARE @customerid INT = 123456
SELECT * FROM custom.tfnCustomerRatings(@customerid)
我尝试将变量的值设置为 select 语句。但是,这会引发如下错误。我需要以不同的方式执行此操作吗? “子查询返回超过 1 个值。当子查询跟在 =、!=、<, <= , >、>= 后面或子查询用作表达式时,不允许这样做。”
DECLARE @customerid INT
SET @customerid = (SELECT distinct Customerid FROM compliance.CustomerTable WHERE CountryID = 1)
SELECT * FROM custom.tfnCustomerRatings(@customerid)
提前致谢。
使用交叉应用可在 1 分钟内返回结果。使用以下命令会在 4 秒内返回结果。
SELECT * FROM custom.tfnCustomerRatings(null)
WHERE CustomerID IN (SELECT DISTINCT CustomerID FROM Compliance.Customer WHERE CountryID = 1)