将NTEXT列与恒定值进行比较的正确方法是什么?
-
30-09-2019 - |
题
如果我使用类似的东西
[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'
不隶属于 StackOverflow