对变量值使用 Select 语句

问题描述 投票:0回答:1

在 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)

提前致谢。

sql sql-server variables table-functions
1个回答
0
投票

使用交叉应用可在 1 分钟内返回结果。使用以下命令会在 4 秒内返回结果。

SELECT * FROM  custom.tfnCustomerRatings(null)
WHERE CustomerID IN (SELECT DISTINCT CustomerID FROM Compliance.Customer WHERE CountryID = 1)
© www.soinside.com 2019 - 2024. All rights reserved.