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) )
我想使用 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) )