Check if string doesn't contain another string
Sql ServerTsqlStringSql Server Problem Overview
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?
Sql Server Solutions
Solution 1 - Sql Server
WHERE NOT (someColumn LIKE '%Apples%')
Solution 2 - Sql Server
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 - Sql Server
Use this as your WHERE condition
WHERE CHARINDEX('Apples', column) = 0
Solution 4 - Sql Server
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 || '%')