Check if string doesn't contain another string
In T-SQL, how would you check if a string doesn't contain another string?
I have an nvarchar
which could be "Oranges Apples".
I would like to do an update where, for instance, a columm doesn't contain "Apples".
How can this be done?
Solution 1:
WHERE NOT (someColumn LIKE '%Apples%')
Solution 2:
Or alternatively, you could use this:
WHERE CHARINDEX(N'Apples', someColumn) = 0
Not sure which one performs better - you gotta test it! :-)
Marc
UPDATE: the performance seems to be pretty much on a par with the other solution (WHERE someColumn NOT LIKE '%Apples%') - so it's really just a question of your personal preference.
Solution 3:
Use this as your WHERE condition
WHERE CHARINDEX('Apples', column) = 0
Solution 4:
The answers you got assumed static text to compare against. If you want to compare against another column (say, you're joining two tables, and want to find ones where a column from one table is part of a column from another table), you can do this
WHERE NOT (someColumn LIKE '%' || someOtherColumn || '%')