1

私のデータベースの person テーブルには 2 つのレコードがあり、それらの姓は "تحصیلداری" と "موقر" です。
私が使うとき

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)

しかし、この方法では機能せず、私の検索では適切な解決策が見つかりませんでした。誰も方法を知っていますか

4

1 に答える 1

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 を使用することに気付いたかもしれません。

于 2013-08-14T12:03:12.350 に答える