如下紅色部分為什么轉換老是出錯,我寫成定值可以,寫成cast(@i as nvarchar)可以,為什么寫成cast((@i-1) as nvarchar)就出錯呢?
set @str = SUBSTRING(@context,6, 1);????set @i = CAST(SUBSTRING(@context,7, 1) as int);????if @i = 1????begin ?????set @sql=N'set @strnum = (select top 1 * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) + ''','',''))';????end ????else???? begin?????set @sql=N'set @strnum = (select top ' + CAST(@i as nvarchar) + ' * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) + ''','','')?????except ?????select top '+cast((@i-1) as nvarchar) +' * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) +''','',''))';????end????set @paraDefine = N'@strnum nvarchar(50) output';????exec sp_executesql @sql,@paraDefine,@strnum output
sqlserver 動態sql cast出錯
長風秋雁
2018-12-07 04:22:52