将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'
如果您不希望进行强制转换,则可以在某些使用LIKE
或PATINDEX
场景中获得,如以下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'