IN
lista jest po prostu skrótem dla warunków OR. LIKE
klauzula działa z NTEXT
i TEXT
pola. Możesz więc połączyć te dwa pomysły, aby to zrobić:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Jednak, jak zasugerował @marc_s w komentarzu do pytania, NVARCHAR(MAX)
jest preferowany, ponieważ działają z nim wszystkie funkcje łańcuchowe (oraz TEXT
, NTEXT
i IMAGE
typy danych są przestarzałe od SQL Server 2005). możesz wykonaj konwersję w wierszu, taką jak:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
ale prawdopodobnie nie będzie to działać tak dobrze, jak przy użyciu LIKE
klauzula z OR
warunki.
Uwaga: Podczas pracy z NTEXT
/ NVARCHAR
/ NCHAR
/ XML
danych, najlepiej zawsze Prefiks literałów ciągu z wielką literą „N”. Niewykonanie tego może spowodować utratę danych dla znaków nieobsługiwanych przez stronę kodową skojarzoną z domyślnym sortowaniem bazy danych.
Aby uzyskać więcej informacji na temat pracy z sortowaniem / kodowaniem / Unicode / ciągami znaków w programie SQL Server, odwiedź stronę:https://Collations. Informacje/