Un IN
list è solo un'abbreviazione per le condizioni OR. Il LIKE
la clausola funziona con NTEXT
e TEXT
campi. Quindi, puoi combinare queste due idee per farlo:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Tuttavia, come suggerito da @marc_s in un commento alla domanda, NVARCHAR(MAX)
è preferito poiché tutte le funzioni di stringa funzionano con esso (e TEXT
, NTEXT
e IMAGE
i tipi di dati sono stati deprecati a partire da SQL Server 2005). Potresti esegui una conversione in linea come:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
ma probabilmente non avrebbe le stesse prestazioni dell'utilizzo di LIKE
clausola con OR
condizioni.
Nota: Quando si lavora con NTEXT
/ NVARCHAR
/ NCHAR
/ XML
dati, è meglio sempre prefisso letterali stringa con una "N" maiuscola. In caso contrario, potrebbero verificarsi perdite di dati per tutti i caratteri non supportati dalla codepage associata alle regole di confronto predefinite del database.
Per ulteriori informazioni sull'utilizzo di regole di confronto/codifiche/Unicode/stringhe in generale in SQL Server, visitare:https://Collations. Info/