我创建了一个过程并收到了这条消息
将 varchar 值“%”转换为数据类型 int 时转换失败。
create procedure consultarEquipo (@id varchar(10), @marca varchar(20),
@year int, @factura varchar(50), @poliza varchar(30))
as begin
select * from C_EQUIPOS
where (ID_EQUIPO like '%'+@id+'%' and
MARCA like '%'+@marca+'%' and
YEAR like '%'+@year+'%' and
FACTURA like '%'+@factura+'%' and
SEGURO like '%'+@poliza+'%')
end
go
我不知道它可能是什么,但是当我将程序更改为这样时:
create procedure consultarEquipo (@id varchar(10), @marca varchar(20))
as begin
select * from C_EQUIPOS
where (ID_EQUIPO like '%'+@id+'%' and
MARCA like '%'+@marca+'%')
end
go
看起来效果很好。我是 SQL 新手,所以任何帮助将不胜感激,也许有更好的方法来完成我想做的事情?
这是在where
clause:
YEAR like '%'+@year+'%' and
@year
是一个整数。因此,您需要将其转换为字符串:
YEAR like '%'+ cast(@year as varchar(255)) + '%' and
你为什么使用like
对于名为YEAR
是可疑的。也许你只是想要:
(YEAR = @year or @year IS NULL) and
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)