在SQL中判断ntext字段是否等于指定值,报错“数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容”,先上SQL语句报错截图:

数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容.png


如以上SQL语句,'123'在数据库中是varchar格式的,和ntext字段是完全不同的,所以无法进行比较。于是就报出了错误“数据类型 ntext 和 nvarchar 在 equal to 运算符中不兼容”,那么如何解决这个问题呢?

 1. 在数据结构允许的情况下,直接将数据库中将ntext改成varchar或者nvarchar

 2. 在业务逻辑允许的情况下,将等于判断改为LIKE模糊匹配,如:SELECT * FROM tblTest WHERE myContent LIKE '%123%'

 3. 修改SQL语句,将ntext字段转换为nvarchar字段后再进行匹配,如:SELECT * FROM tblTest WHERE CAST(myContent AS NVARCHAR(MAX))='123'