Een IN
lijst is slechts een afkorting voor OK-condities. De LIKE
clausule werkt met NTEXT
en TEXT
velden. Je kunt deze twee ideeën dus combineren om dit te doen:
WHERE (
someNtext LIKE N'asd'
OR someNtext LIKE N'asd1'
)
Echter, zoals @marc_s suggereerde in een opmerking over de vraag, NVARCHAR(MAX)
heeft de voorkeur omdat alle tekenreeksfuncties ermee werken (en de TEXT
, NTEXT
, en IMAGE
datatypes zijn afgeschaft vanaf SQL Server 2005). Je zou doe een inline conversie zoals:
WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')
maar waarschijnlijk zou dat niet zo goed presteren als het gebruik van de LIKE
clausule met OR
voorwaarden.
Let op: Bij het werken met NTEXT
/ NVARCHAR
/ NCHAR
/ XML
gegevens, kunt u het beste altijd prefix tekenreeksletters met een hoofdletter "N". Als u dit niet doet, kan dit leiden tot gegevensverlies voor tekens die niet worden ondersteund door de codetabel die is gekoppeld aan de standaardsortering van de database.
Ga voor meer informatie over het werken met sorteringen / coderingen / Unicode / tekenreeksen in het algemeen in SQL Server naar:https://Collations. Info/