Che*_*rot 2 t-sql sql-server sql-server-2005 in-operator sqldatatypes
我该如何解决这个问题?
where someNtext IN ('asd',asd1')
Run Code Online (Sandbox Code Playgroud)
给出错误:
数据类型ntext和nvarchar在等于运算符中不兼容.
IN列表只是OR条件的简写.LIKE子句适用于NTEXT和TEXT字段.因此,您可以将这两个想法结合起来:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Run Code Online (Sandbox Code Playgroud)
但是,正如@marc_s在对问题的评论中所建议的那样,NVARCHAR(MAX)是首选,因为所有字符串函数都可以使用它(并且不推荐使用TEXT,NTEXT和IMAGE数据类型).您可以执行内联转换,例如:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
Run Code Online (Sandbox Code Playgroud)
但可能不会像在OR条件下使用LIKE子句一样好.