如果我使用类似的东西

[ntext2] <> '1,032.5',

我得到这个错误:

数据类型NTEXT和VARCHAR在不等于操作员的情况下不兼容。

最好的解决方案是,是否以任何列类型的方式实现了比较。 (<>运算符适用于nvarchar和int)。

有帮助吗?

解决方案

ntext 数据类型被弃用而不是 nvarchar(max) 数据类型。如果您可以更改表中的数据类型,那将是最好的解决方案。然后,将其与 varchar 文字。

否则,您必须在比较值之前施放该值:

cast([ntext2] as nvarchar(max)) <> '1,032.5'

您还可以考虑使用NVARCHAR LILLAL,该文字解决了一些类似的数据类型问题:

cast([ntext2] as nvarchar(max)) <> N'1,032.5'

其他提示

如果您不想施放,您可以在某些情况下使用 LIKE 或者 PATINDEX, ,如此MSDN线程所示: http://social.msdn.microsoft.com/forums/en-us/transactsql/thread/6bd4c661-ea0b-435f-af78-097e61549d41

(在这种情况下)类似的表达将大致等于平等的测试。

在这种情况下,表达方式是:

[ntext2] NOT LIKE '1,032.5'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top