sql-server – 在SQL Server 2008中将varchar值转换为datatype i
发布时间:2020-12-12 07:05:31 所属栏目:MsSql教程 来源:网络整理
导读:我不知道如何解决这个错误: Conversion failed when converting the varchar value ‘SELECT LastName,FirstName FROM ##Results WHERE ##RowNum BETWEEN(‘ to data type int. 查询是: SET @s_query = 'SELECT ' + @ColNames1 + ' FROM ##ResultsWHERE ##R
我不知道如何解决这个错误:
查询是: SET @s_query = 'SELECT ' + @ColNames1 + ' FROM ##Results WHERE ##RowNum BETWEEN('+@PageIndex1+'-1) * '+@PageSize1+' + 1 AND((('+@PageIndex1+' -1) * '+@PageSize1+' + 1) + '+@PageSize1+') - 1'; 解决方法您正在构建一个字符串并将其结果放在@s_query变量中.因此,您必须以这种方式将int变量转换为@ PageIndex1和@ PageSize1: SET @s_query = 'SELECT ' + @ColNames1 + ' FROM ##Results WHERE ##RowNum BETWEEN('+CONVERT(varchar(20),@PageIndex1)+'-1) * '+CONVERT(varchar(20),@PageSize1)+' + 1 AND((('+CONVERT(varchar(20),@PageIndex1)+' -1) * '+CONVERT(varchar(20),@PageSize1)+' + 1) + '+CONVERT(varchar(20),@PageSize1)+') - 1'; 如果要保持代码的可读性,可以定义两个变量: DECLARE @pistr varchar(20) DECLARE @psstr varchar(20) SET @pistr = CONVERT(varchar(20),@PageIndex1) SET @psstr = CONVERT(varchar(20),@PageSize1) 所以你的查询变为: SET @s_query = 'SELECT ' + @ColNames1 + ' FROM ##Results WHERE ##RowNum BETWEEN('+ @pistr +'-1) * '+@psstr+' + 1 AND((('+@pistr+' -1) * '+@psstr+' + 1) + '+@psstr+') - 1'; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |