SQL 服务器:函数 return 可以在 where 子句中使用的列值?

SQL Server : function return column values that can be used in where clause?

我想使用 WHERE IN 子句从 table 获取记录,如下所示:

Select * 
From Table_A
Where table_id IN (Query X that returns multiple or single id)

现在我想将 X 查询移至 SQL 服务器函数,因为它将使用多个位置并希望这样调用查询:

Select * 
From Table_A
Where table_id IN dbo.function(parameters)

这可以吗?如果是,那么函数的类型是什么(标量或 table 函数)?

试试这个:

CREATE FUNCTION fncName (@params ...)
RETURNS TABLE
AS
RETURN  SELECT id FROM tableName WHERE @params...
go
SELECT * FROM query WHERE id IN (SELECT id FROM fncName(@params...))

我认为你需要通过这种方式

CREATE FUNCTION function_name(@inputparams ...)
RETURNS TABLE
AS
RETURN  SELECT id FROM table WHERE @inputparams...
go
    select * 
    FROM    table
    WHERE   table_id IN ( SELECT column_name FROM function_name(inputparametes) )