LIKE (Transact-SQL) के दस्तावेज़ीकरण से :
मैंने आपकी समस्या को निम्न तालिका के साथ पुन:प्रस्तुत किया:
DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
परिणाम:
(0 row(s) affected)
हालाँकि यदि आप NVARCHAR
. का उपयोग करते हैं इसके बजाय, यह समस्या नहीं होती है:
DECLARE @t TABLE(x NVARCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
परिणाम:
x
-----
nanaS
हालांकि मूल तालिका NVARCHAR
. में परिवर्तित होने पर भी वांछित परिणाम नहीं देती है WHERE
. में खंड:
DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE CONVERT(NVARCHAR(25),x) LIKE N'%S';
परिणाम:
(0 row(s) affected)
तो एक संभावित समाधान यह होगा कि पहली बार में सही डेटा प्रकार का उपयोग किया जाए (और हमेशा यूनिकोड स्ट्रिंग्स N'properly'
का भी उपसर्ग किया जाए। . यदि आप डेटा प्रकार को सही नहीं बना सकते हैं, तो आप RTRIM()
. का उपयोग कर सकते हैं औशिन द्वारा पोस्ट किया गया वर्कअराउंड, लेकिन एचएलजीईएम की टिप्पणियों को भी ध्यान में रखें।