急:如何写查询语句in后面的参数形式
我有多个值要查询,就像要查这个人既可能在北京,也可能在南京,还可能在其他地方。这些地方通过一个字符串传入存储过程。我要怎么写呢?
DECLARE @ParamPlace NVARCHAR(1000)
Set @ParamPlace = '( ' '北京 ' ' or ' '北京 ' ') '
SELECT * FROM STUDENT WHERE [PLACE] in @ParamPlace
报错:
Server: Msg 170, Level 15, State 1, Line 3
Line 3: Incorrect syntax near '@ParamPlace '.
------解决方案--------------------SELECT * FROM STUDENT WHERE [PLACE] in @ParamPlace
-》
exec( 'SELECT * FROM STUDENT WHERE [PLACE] in '+@ParamPlace)
------解决方案--------------------DECLARE @ParamPlace NVARCHAR(1000)
Set @ParamPlace = '北京,南京 '
SELECT * FROM STUDENT WHERE charindex( ', '+[PLACE]+ ', ', ', '+@ParamPlace+ ', ')> 0
------解决方案--------------------直接查就可以.
------解决方案-----------------------try--
DECLARE @ParamPlace NVARCHAR(1000),@str Nvarchar(1000)
Set @ParamPlace = '( ' '北京 ' ', ' '南京 ' ') '
set @str = 'SELECT * FROM STUDENT WHERE [PLACE] in '+@ParamPlace
exec(@str)