存储过程里像 LIKE ‘%’这种怎么加在变量前啊?
比如:
Create PROCEDURE PROD
@S_NAME VARCHAR(5) OUTPUT
AS
SELECT * FROM TABLE1 WHERE
S_NAME LIKE '%'+@S_NAME+'%' //????就是这里有问题。不知道该怎么弄好。
GO
...全文
21222打赏收藏
存储过程里LIKE查询的问题。请教!……
存储过程里像 LIKE ‘%’这种怎么加在变量前啊? 比如: Create PROCEDURE PROD @S_NAME VARCHAR(5) OUTPUT AS SELECT * FROM TABLE1 WHERE S_NAME LIKE '%'+@S_NAME+'%' //????就是这里有问题。不知道该怎么弄好。 GO
Create PROCEDURE PROD
@S_NAME VARCHAR(5) OUTPUT,
@S_introduce text oupput
AS
SELECT * FROM TABLE1 WHERE
S_NAME LIKE '%'+@S_NAME+'%' or
S_NO like '%'+@S_introduce+'%' //这里报错。
GO
错误如下:
错误403:对数据类型而言,运算符无效,运算符为add,类型为text.
不用这样写,只写
Create PROCEDURE PROD
@S_NAME VARCHAR(5)
AS
SELECT * FROM TABLE1 WHERE
S_NAME LIKE S_NAME //????就是这里有问题。不知道该怎么弄好。
GO
就行了
关键是你的字符串处理时
如 dim dd as string
dd="%" & "你的参数" & "%"
这样就行了
我的完整代码是:
CREATE PROCEDURE complex_query
@inf_time datetime output,
@subject varchar(50) output,
@information text output,
@recorder char(10) output,
@record_time datetime output,
@inf_id int output,
@inf_temp text
AS
set @inf_temp='%'+@information+'%'
select * from market_inf where
inf_time=@inf_time or
subject like '%'+@subject+'%' or
information like @inf_temp or
recorder=@recorder or
record_time=@record_time
GO