IN
seznam je pouze zkrácený pro podmínky OR. LIKE
klauzule funguje s NTEXT
a TEXT
pole. Můžete tedy tyto dva nápady zkombinovat:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Jak však @marc_s navrhl v komentáři k otázce, NVARCHAR(MAX)
je upřednostňován, protože s ním pracují všechny řetězcové funkce (a TEXT
, NTEXT
a IMAGE
datové typy byly od SQL Server 2005 zastaralé). Mohli byste proveďte inline převod, například:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
ale pravděpodobně to nebude fungovat tak dobře jako použití LIKE
klauzule s OR
podmínky.
Poznámka: Při práci s NTEXT
/ NVARCHAR
/ NCHAR
/ XML
data, je nejlepší vždy předpona řetězcových literálů s velkým "N". Pokud tak neučiníte, může dojít ke ztrátě dat u jakýchkoli znaků, které kódová stránka přidružená k výchozímu řazení databáze nepodporuje.
Další informace o práci s kolacemi / kódováním / Unicode / řetězci obecně na SQL Serveru naleznete na adrese:https://Collations. Informace/