我有多个值要查询,就像要查这个人既可能在北京,也可能在南京,还可能在其他地方。这些地方通过一个字符串传入存储过程。我要怎么写呢?
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 '[email protected])
------解决方案--------------------
DECLARE @ParamPlace NVARCHAR(1000)
Set @ParamPlace = '北京,南京 '
SELECT * FROM STUDENT WHERE charindex( ', '+[PLACE]+ ', ', ', '[email protected]+ ', ')> 0
------解决方案--------------------
直接查就可以.
------解决方案--------------------
---try--
DECLARE @ParamPlace NVARCHAR(1000),@str Nvarchar(1000)
Set @ParamPlace = '( ' '北京 ' ', ' '南京 ' ') '
set @str = 'SELECT * FROM STUDENT WHERE [PLACE] in '[email protected]
exec(@str)