Sql 将多个nvarchar值转换为int

Sql 将多个nvarchar值转换为int,sql,reporting-services,Sql,Reporting Services,我正在写一份SSRS报告,用户可以输入多个数字,带回相关数据。要求是使用户能够输入多个值 所以我有一个param@serial,它可以只给我一个值,也可以给我任何高达100的值 我似乎不知道如何将每个值从nvarchar转换为int 我尝试了SET@Serials=CONVERT(INT,@Serials),但收到了以下错误消息 将nvarchar值“123 456”转换为数据类型int 如果将@serial用作int,则会收到以下错误消息 INSERT语句中的列少于values caluse中

我正在写一份SSRS报告,用户可以输入多个数字,带回相关数据。要求是使用户能够输入多个值

所以我有一个param
@serial
,它可以只给我一个值,也可以给我任何高达100的值

我似乎不知道如何将每个值从
nvarchar
转换为
int

我尝试了
SET@Serials=CONVERT(INT,@Serials)
,但收到了以下错误消息

nvarchar
值“123 456”转换为数据类型
int

如果将
@serial
用作
int
,则会收到以下错误消息

INSERT语句中的列少于values caluse中指定的值。values caluse中的值数必须与INSERT语句中指定的列数匹配

上面的错误是当我在下面代码行插入临时表时出现的

INSERT INTO @Temp
(TMP_SerialNo)
VALUES (@serial)

如果有人告诉我哪里出了问题,我将非常感激

在SSRS报告中,最简单的方法是添加一个cast以将其转换为int。 不能将值插入SSRS报表,只能插入SQL表

我在开始处(选择之前)添加此选项:


在SSRS报告中执行此操作的最简单方法是添加一个cast以将其转换为int。 不能将值插入SSRS报表,只能插入SQL表

我在开始处(选择之前)添加此选项:



我认为您尝试使用多值参数作为临时变量的值是错误的table@Lamak任何关于我将如何进行的建议都不是不知道您实际使用这些值的原因,但是“123456”不是一个数字。。。请尝试删除一个空格,使其成为一个数字,然后将其插入表SRS的设计目的不是改变底层数据库,它是一个报告引擎。但是,您可以使用文本数据类型参数,如果您的用户键入
123456
,它将尝试插入具有该值的行。请注意,用户必须输入多个值作为表中的列。我认为您尝试使用多值参数作为临时表的值是错误的table@Lamak任何关于我将如何进行的建议都不是不知道您实际使用这些值的原因,但是“123456”不是一个数字。。。请尝试删除一个空格,使其成为一个数字,然后将其插入表SRS的设计目的不是改变底层数据库,它是一个报告引擎。但是,您可以使用文本数据类型参数,如果您的用户键入
123456
,它将尝试插入具有该值的行。注意:您的用户必须输入多个值作为表中的列。这将只转换第一个值,而不是第二个值。您在问题中指的是456吗?是的,我指的是您的数据是否错误,或者您使用的某种参数具有多个值。”123 456’由于间距的原因而不是int,如果这是一个真正的‘123456’,您可以使用sql concatenate将它们连接在一起。如果你的意思是“123456”,那么如果你不能计算它们,你能试着用数字代替int吗?这只会转换第一个值而不是第二个值。你是指你问题中的456吗?是的,这就是我指的,无论你的数据是错的还是你使用了某种具有多个值的参数。”123 456’由于间距的原因而不是int,如果这是一个真正的‘123456’,您可以使用sql concatenate将它们连接在一起。如果你的意思是“123456”,那么如果你不能计算它们,你能尝试用数字代替整数吗?
  DECLARE @temp_Status integer;
    set @temp_Status = CAST(SomeStatus as int);
    And then use everywhere the var @temp_Status.