我有一个在 Dynamic SQl 中为我的一个应用程序编码的 Proc。它用于搜索申请人的姓氏。现在,它正在搜索申请人的姓氏的前 2 位数字或全名。但是我在搜索姓氏中有撇号的申请人时遇到问题(例如 O'Connor)。如果客户尝试使用 O' 或 O'Connor 搜索申请人,则会引发错误。他们希望搜索姓氏中带有或不带有撇号的每个申请人。请帮助我尝试了一切,但它不起作用。以下是我在 Proc 中用于拉申请人的搜索代码:
必要时添加通配符
if Rtrim(@FirstName) <> ''
begin
If(Len(@FirstName) < 30) and (CharIndex('%', @FirstName) = 0) and @FirstName != ''
Set @FirstName = char(39) + @FirstName + '%' + char(39)
end
if Rtrim(@LastName) <> ''
begin
If(Len(@LastName) < 60) and (CharIndex('%', @LastName) = 0) and @LastName != ''
Set @LastName = Char(39) + @LastName + '%' + char(39)
end
现在根据输入参数动态构建过滤器
if Rtrim(@LastName) <> ''
select @Where = @Where + ' and a.LastName like '+ Rtrim(@LastName)