将NTEXT列与常数值进行比较的正确方法是什么?

如果我使用类似的东西

[ntext2] <> '1,032.5', 

我得到这个错误:

数据typesntext和varchar在不等于运算符时不兼容。

最好的解决scheme是如果对任何列types以相同的方式进行比较。 (<>运算符适用于NVARCHAR和INT)。

ntext数据types不推荐使用nvarchar(max)数据types。 如果您可以更改表格中的数据types,那将是最好的解决scheme。 那么将它与一个varchar文字进行比较是没有问题的。

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

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

你也可以考虑使用nvarchar文字,它解决了一些类似的数据types问题:

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

如果您不希望进行强制转换,则可以在某些使用LIKEPATINDEX场景中获得,如以下MSDN线程所示: http : //social.msdn.microsoft.com/Forums/zh-CN/transactsql/thread/6bd4c661 -ea0b-435f-af78-097e61549d41

没有通配符的LIKEexpression式(在这种情况下)大致相当于一个相等的testing。

在这种情况下,expression式将是:

 [ntext2] NOT LIKE '1,032.5' 
Interesting Posts