在使用sql查询SQLServer中的数据时,数据中明显存在有可对应where限制条件的数据,但是通过使用where限制条件查询时发现出现无数据的情况。
该问题是由于所使用的SQLServer数据库为英文版本所以数据库中的字段值为Unicode编码,在查询字段类型为char ->nchar varchar ->nvarchar text →ntext类型的字段时会出现字符编码不匹配故查询不到对应数据的情况
由于该问题主要为sql层面的限制,SQLServer为此提供了解决方案,需要在sql中有与中文字符相干的限制条件时在字符前添加 N 即可处理。
如原sql为:
select * from `categories` where `CategoryName` = '饮料'
修改为:
select * from `categories` where `CategoryName` = N'饮料'