Sql 将文本多值参数强制转换为BIGINT

Sql 将文本多值参数强制转换为BIGINT,sql,sql-server,ssrs-2008-r2,Sql,Sql Server,Ssrs 2008 R2,我有一个基于另一个查询结果的参数。它包含一个在报告中表示为文本数据字段的BIGINT。但是,当我稍后在查询中使用它时 SELECT * FROM Table WHERE X IN (@Parameter) SQL尝试将其转换回INT,并在值太大时爆炸 我已经尝试连接参数、拆分参数并转换结果,但这会使服务器超时 我尝试过用字符串_SPLIT()和下面的customer函数拆分它 CREATE FUNCTION [dbo].[fn_SplitString] (@SourceString VARCH

我有一个基于另一个查询结果的参数。它包含一个在报告中表示为文本数据字段的BIGINT。但是,当我稍后在查询中使用它时

SELECT * FROM Table WHERE X IN (@Parameter)
SQL尝试将其转换回INT,并在值太大时爆炸

我已经尝试连接参数、拆分参数并转换结果,但这会使服务器超时

我尝试过用字符串_SPLIT()和下面的customer函数拆分它

CREATE FUNCTION [dbo].[fn_SplitString]
(@SourceString VARCHAR(MAX)
,@Seperator VARCHAR(25)=','
)
RETURNS @ResultTable
TABLE(
[Position] INT IDENTITY(1,1),
[Value] VARCHAR(MAX)
)
AS

BEGIN
DECLARE @w_xml xml;

SET @w_xml = N'<root><i>' + replace(@SourceString, @Seperator,'</i><i>') + '</i></root>';

INSERT INTO @ResultTable
([Value])
SELECT
[i].value('.', 'VARCHAR(MAX)') AS Value
FROM
@w_xml.nodes('//root/i') AS [Items]([i]);
RETURN;
END;
创建函数[dbo]。[fn\u SplitString]
(@SourceString VARCHAR(最大值)
,@分隔符VARCHAR(25)=','
)
返回@resultable
桌子(
[位置]整数标识(1,1),
[值]VARCHAR(最大值)
)
作为
开始
声明@w_xml;
设置@w_xml=N''+替换(@SourceString,@separator'')+'';
插入@resultable
([价值])
挑选
[i] .value('.','VARCHAR(MAX')作为值
从…起
@w_xml.nodes('//root/i')作为[Items]([i]);
返回;
结束;

将文本多值参数转换为BIGINT多参数的最佳方法是什么?

使用
STRING\u SPLIT()
。这在特定服务器上对我不可用。最高兼容级别是120,但我需要130才能使用STRING_SPLIT()。您仍然可以编写自己的自定义拆分函数。使用charindex。我已经更新了我的问题,以显示我正在使用的spilt函数