Список IN
- это просто сокращение для условий ИЛИ.Предложение LIKE
работает с полями NTEXT
и TEXT
.Таким образом, вы можете объединить эти две идеи, чтобы сделать это:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Однако, как @marc_s предложил в комментарии к Вопросу, NVARCHAR(MAX)
предпочтительнее, так как все строковые функции работают с ним (и *Начиная с SQL Server 2005 типы данных 1009 *, NTEXT
и IMAGE
устарели.Вы можете выполнить встроенное преобразование, например:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
, но, скорее всего, это не будет работать так же хорошо, как использование предложения LIKE
с условиями OR
.
Обратите внимание: При работе с NTEXT
/ NVARCHAR
/ NCHAR
/ XML
данными лучше всего всегда использовать префикс строковых литералов с заглавной буквой "N",Невыполнение этого требования может привести к потере данных для любых символов, не поддерживаемых кодовой страницей, связанной с сопоставлением по умолчанию для базы данных.
Дополнительные сведения о работе с параметрами сортировки / кодирования / Unicode / строк в целом в SQL ServerПожалуйста, посетите: https://Collations.Info/