我的数据库中的人员表中有两条记录,它们的姓氏是“تحصیلداری”和“موقر”。
当我使用
select * from Person where Lastname like N'%ی%'
包含姓氏中的“ی”字符的记录返回,这正是我需要的,但我需要一点改动。我需要使用%
和%
之间的单词作为参数
类似的东西:
create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50))
as
begin
select * from Person where Lastname like N'%'+@LN+'%'
end
declare @LastName nvarchar(50) = 'ی'
exec usp_GetPersonsWhoseNameContains(@LastName)
但它没有这种方式,在我的搜索中我找不到合适的解决方案。有谁知道如何
答案 0 :(得分:2)
尝试
create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50))
as
begin
select * from Person where Lastname like N'%'+@LN+'%'
end
declare @LastName nvarchar(50) = N'ی'
exec usp_GetPersonsWhoseNameContains(@LastName)
也许您注意到SQL Server在为您生成DDL脚本时将N用于任何引用的字符串输入。