たとえば、半分のスペースをスペースに置き換える方法を教えてくださいsql server
:بیامو to بی ام و
select *
from test
where title like N'%بیامو%'
たとえば、半分のスペースをスペースに置き換える方法を教えてくださいsql server
:بیامو to بی ام و
select *
from test
where title like N'%بیامو%'
半角スペースの意味がわかりませんでした。ただし、置換機能を使用して文字を置き換えることができます。
半角スペース、隠し文字、またはゼロ幅スペースの Unicode を取得することは非常に重要です。次の例では、「8204」または「8203」の場合があります。重要なことは、「SQL_Latin1_General_CP1_CI_AS」で機能するだけの照合です。
DECLARE @UnicodeReplace NVARCHAR(5) = N'یآ'
-- check that unicode string length is 3,
-- and prove existence of zero-width space character matching unicode 8204
SELECT @UnicodeReplace AS String,
LEN(@UnicodeReplace) AS Length,
UNICODE(SUBSTRING(@UnicodeReplace, 2, 1)) AS UnicodeValue -- it gets you 8204
set @UnicodeReplace = N'یآ' collate Persian_100_CI_AS --+ NCHAR(8204)
-- replace and prove the unicode string length is reduced to 2
SELECT REPLACE(@UnicodeReplace collate SQL_Latin1_General_CP1_CI_AS , NCHAR(8204), ''),
LEN(REPLACE(@UnicodeReplace collate SQL_Latin1_General_CP1_CI_AS , NCHAR(8204), '')) AS Length