我正在为这个SQL挠头。 我已经将数据库排序规则更改为Chinese_PRC_CI_AS,但是仍然无法加入或搜索包含中文的特定值。该列值来自Excel文件,我认为excel编码可能有问题。
我尝试使用以下方法找到十六进制字符串:
SELECT master.dbo.fn_varbintohexstr(CAST(Media AS varbinary))
,Media
,master.dbo.fn_varbintohexstr(CAST('汽车之家 Autohome' AS varbinary))
FROM XXX
产生不同的值:
0x7d6c668f4b4eb65b0a004100750074006f0068006f006d006500 汽车之家 Autohome 0xc6fbb3b5d6aebcd2204175746f686f6d65
第一个十六进制字符串是我无法使用条件where
加入或搜索的字符串
如何确定第一个字符串使用哪种编码?
更新:
受以下人员启发,使用N'',十六进制字符串相同。但是我仍然无法使用where Media = N'汽车之家 Autohome'
搜索字符串。有什么想法吗?
更新: 我发现了原因,请注意空格实际上不是空格,而是\ n或其他特殊字符,请将其删除,一切正常