将多个nvarchar值转换为int

时间:2016-02-22 15:24:18

标签: sql reporting-services

我正在处理SSRS报告,用户可以输入多个数字来恢复相关数据。要求是使用户能够输入多个值。

所以我有一个参数@serial,它可以只是一个值或任何高达100的值

我似乎无法弄清楚如何将每个值从nvarchar转换为int

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

  

转换nvarchar值' 123 456&#39>时,会话失败到数据类型int

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

  

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

上面的错误是我在下面的代码行

中插入临时表时
INSERT INTO @Temp
(TMP_SerialNo)
VALUES (@serial)

如果有人指导我在哪里出错,我会非常感激

1 个答案:

答案 0 :(得分:-1)

在SSRS报告中执行此操作的最简单方法是添加强制转换以将其置于int中。 您不能将值插入SSRS报告,只能插入SQL表。

我在开头(选择之前)添加了这个:

  DECLARE @temp_Status integer;
    set @temp_Status = CAST(SomeStatus as int);
    And then use everywhere the var @temp_Status.