我有一个包含允许不同语言格式(使用nvarchar)的列的表,问题是当我尝试搜索这些术语时;特别是日语/中文术语,典型的select语句不起作用
select * from jtable where searchterm = 'ろくでなし'
它将返回0,这是不正确的,因为它肯定在表中。有人提到使用cast(....)但不知道如何做到这一点。
答案 0 :(得分:3)
需要N来创建字符串文字unicode。
select * from jtable where searchterm = N'ろくでなし'
没有N,'ろくでなし'是隐式varchar,被视为'?????'
有关原因的示例,请参阅我关于高棉文本的相关答案:Khmer Unicode, English and Microsoft SQL Server 2008 results in questionmarks