转换varchar值数据类型为int时,如何解决转换失败

时间:2019-01-09 08:02:44

标签: stored-procedures

我想创建一个存储过程,该过程通过传递参数来返回值。

当我执行此存储过程时,会发生此错误:

  

将varchar值“ AND GenderId =”转换为数据类型int时转换失败。

我的代码:

create proc sp_getPatientRegistration (@genderId int) AS
declare @condition  varchar(500);
begin
If @genderId!=0
SET @condition='AND GenderId='+@genderId
    SELECT PtRegNo,Name,MobileNo,GenderId FROm tbl_PATIENT_REGISTRATION WHERE 1=1 +@condition
end

预期结果显示在此屏幕截图中:

Image

1 个答案:

答案 0 :(得分:0)

@genderId是整数,在连接前必须将其转换为varchar。 如果您使用的是sql,则可以使用:

CAST(@genderId as Nvarchar(50))