What's the right way to compare an NTEXT column with a constant value?

后端 未结 2 550
予麋鹿
予麋鹿 2020-12-24 11:17

If I use something like

[ntext2] <> \'1,032.5\',

I get this error:

The data types ntext and varchar are incomp

相关标签:
2条回答
  • 2020-12-24 12:04

    The ntext data type is deprecated in favour of the nvarchar(max) data type. If you can change the data type in the table, that would be the best solution. Then there is no problem comparing it to a varchar literal.

    Otherwise you would have to cast the value before comparing it:

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

    You might also consider using a nvarchar literal, which solves some similar data type problems:

    cast([ntext2] as nvarchar(max)) <> N'1,032.5'
    
    0 讨论(0)
  • 2020-12-24 12:14

    If you would prefer not to cast, you can get by in some scenarios using LIKE or PATINDEX, as demonstrated on this MSDN thread: http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/6bd4c661-ea0b-435f-af78-097e61549d41

    The LIKE expression, without wildcards, would be (in this case) roughly equivalent to a test for equality.

    In this case, the expression would be:

    [ntext2] NOT LIKE '1,032.5'
    
    0 讨论(0)
提交回复
热议问题