declare @POID nvarchar(300)set @sqlstr='select @wmdate=min(wmdate),@departure=min(departure),@arrive=min(arrive),@CustomerDate=min(CustomerDate) from POMainPre where POID IN ( ' + @POIDS + ')'这里@POIDS的内容是:'1002','1003'
我也试过把@POIDS的内容改为:''1002'',''1003''
但是奇怪的是,在查询调试器里,直接赋值的话,是正常的,即会出现......( '1002','1003')
正常参数传入时,发现无论怎么搞,都会变成......( '1002','1003'
很奇怪,右括号不见了。
有哪位大哥大姐知道为什么吗?
我也试过把@POIDS的内容改为:''1002'',''1003''
但是奇怪的是,在查询调试器里,直接赋值的话,是正常的,即会出现......( '1002','1003')
正常参数传入时,发现无论怎么搞,都会变成......( '1002','1003'
很奇怪,右括号不见了。
有哪位大哥大姐知道为什么吗?
SET @POID='''1002'',''1003''' PRINT @POID
'1002','1003'
-->
'''1002'',''1003'''
是查询分析器的设置问题
查询分析器-->工具-->选项-->结果页-->每列最多字符数(M)->设置成300或更多, 因为你的数据已经超过原设定的值, 被截断了
问题是我在执行前把sqlstr保存到数据库,发现拼接在变量后的字符不见了,实在没办法,我只能在参数传入前就把需要的东东给拼接上去,例如,原来传入是“‘1002’,’1003'",现在无奈只能传"( '1002','1003' )"