如果我使用类似的东西
[ntext2] <> '1,032.5',
我收到此错误:
数据类型 ntext 和 varchar 在不等于运算符中不兼容。
最好的解决方案是,如果对任何列类型都以相同的方式实现比较。(<> 运算符适用于 NVARCHAR 和 INT)。
如果我使用类似的东西
[ntext2] <> '1,032.5',
我收到此错误:
数据类型 ntext 和 varchar 在不等于运算符中不兼容。
最好的解决方案是,如果对任何列类型都以相同的方式实现比较。(<> 运算符适用于 NVARCHAR 和 INT)。
ntext
不推荐使用数据类型以支持数据nvarchar(max)
类型。如果您可以更改表中的数据类型,那将是最好的解决方案。varchar
那么将其与文字进行比较就没有问题了。
否则,您必须在比较之前转换该值:
cast([ntext2] as nvarchar(max)) <> '1,032.5'
您也可以考虑使用 nvarchar 文字,它可以解决一些类似的数据类型问题:
cast([ntext2] as nvarchar(max)) <> N'1,032.5'
如果您不想投射,您可以在某些情况下使用LIKE
or PATINDEX
,如此 MSDN 线程所示:http ://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/6bd4c661-ea0b -435f-af78-097e61549d41
没有通配符的 LIKE 表达式将(在这种情况下)大致等同于相等性测试。
在这种情况下,表达式将是:
[ntext2] NOT LIKE '1,032.5'